Javascript MongoDB按嵌套对象值排序
我试图根据嵌套对象的值对结果进行排序。使用Javascript MongoDB按嵌套对象值排序,javascript,mongodb,node-mongodb-native,Javascript,Mongodb,Node Mongodb Native,我试图根据嵌套对象的值对结果进行排序。使用节点mongodb native,我将执行以下操作: this.collection.find({ "_id": ObjectID(item_id) }, { "items": 1 }, { sort : { items.date : 1 } }, function(err, result) { if (err) { callback(err);
节点mongodb native
,我将执行以下操作:
this.collection.find({
"_id": ObjectID(item_id) },
{ "items": 1 },
{ sort : { items.date : 1 }
}, function(err, result) {
if (err) {
callback(err);
} else {
callback(null, result);
}
});
我收到项的意外令牌错误。日期
项
是一个对象数组。有些文档是空数组,有些文档包含数据,其中包含date
字段
谢谢大家! 使用点表示法时,需要将键值放在引号中,因此您的sort
对象应该如下所示:
sort: {
"items.date" : 1
}
这将按照每个文档的项数组中的最小date
值升序排序我认为这将只使用数组中的第一个日期进行排序。因此,如果您想按降序排序,并且您的后续日期被追加到末尾而不是插入到开头,那么您的排序将不正确。@RobAllsopp如何解决此问题?我按降序排序,没有嵌套值的文档显示在顶部