最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

Cosmos DB:MongoDB排序查询返回空白结果集

运维笔记admin10浏览0评论

Cosmos DB:MongoDB排序查询返回空白结果集

Cosmos DB:MongoDB排序查询返回空白结果集

我正在使用Mongoose.js 4.11.6 Node.js 6.0。

我有一个看起来像波纹管的用户文档 -

var UserSchema = new Schema({
  name: { type: String, default: '' },
  email: { type: String, default: '' },
  phone: { type: String, default: '' },
  hashed_password: { type: String, default: '' },
  role: { type: String, default: '' },
  created_at: { type: Date, default: Date.now }
});

我正在运行以下mongoose查询 -

UserSchema.find({role:options.role})。select(options.select).sort({'email': - 1})。exec(cb);

理想情况下,这应该返回按电子邮件ID排序的列表匹配用户。该查询完全符合我们在AWS部署中的预期。但在Cosmos DB MongoDB托管中它返回空结果集。但是当.sort({'email': - 1})被删除时,查询返回结果(但不是按照所需的顺序)。

回答如下:

正如在一个单独的线程中所讨论的那样确实有效。下面是完整的示例代码,显示了通过Mongoose使用CosmosDB和Mongo API按预期工作的排序。

https://gist.github/m-gagne/00893a32a0e4c7f593a1676ba1380e63

var mongoose = require('mongoose');

mongoose.connect('<COSMOS DB CONNECTION STRING>');

var Schema = mongoose.Schema;

var userSchema = new Schema({
  email: { type: String, default: '' },
});

var User = mongoose.model('User', userSchema, "users");

User.find({}).select(['email']).sort({ 'email': -1 }).exec(function(err, results) {
  if(err) {
    console.log("!!! ERROR !!!");
    console.log(err);
    return;
  }
  console.log(results);
});
发布评论

评论列表(0)

  1. 暂无评论