【发布时间】:2017-12-29 12:10:43
【问题描述】:
我正在使用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 }
});
我正在运行以下猫鼬查询 -
UserSchema.find({ 角色: options.role }) .select(options.select) .sort({ '电子邮件': -1 }) .exec(cb);
理想情况下,这应该返回按电子邮件 ID 排序的匹配用户列表。该查询的工作方式与我们在 AWS 部署中的预期工作方式完全相同。 但在 Cosmos DB MongoDB 托管中,它返回的是空结果集。但是当 .sort({ 'email': -1 }) 被删除时,查询会返回结果(但不是按所需的顺序)。
【问题讨论】:
-
您是否尝试过将
'-email'作为排序参数传递? -
您是否为电子邮件选择了适当的范围索引?如果不适当设置精度,就无法对字符串进行排序
标签: node.js mongodb azure mongoose azure-cosmosdb