我正在使用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/