node.js - 宇宙数据库 : MongoDB sort query returning blank resultset

标签 node.js mongodb azure mongoose azure-cosmosdb

我正在使用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.com/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);
});

关于node.js - 宇宙数据库 : MongoDB sort query returning blank resultset,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45588686/

相关文章:

node.js - Mocha + Nodejs + Heroku .env 文件

node.js - NestJS Mongoose 扩展架构并覆盖父级的属性

json - 为什么我从 mongodb 获取我的 json 中某些字段的所有零值?

javascript - spring mvc 使用 javascript 附加 inslide [[]] 多个数组值

node.js - 执行查询并在两个小节中获取结果 mongodb

node.js - 切换到 API v2 时的 Dialogflow 编码问题

node.js - MongoDB 和 i18n

python - Azure函数错误: Error "SyntaxError: Unexpected token S in JSON at position 0" occurred while parsing the response body - Service Unavailable

c# - 无法从 BlobItem 检索元数据

azure - Azure Functions 中可以使用属性路由吗