我正在尝试根据嵌套对象的值对结果进行排序。使用node-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);
}
});
我收到items.date
的意外令牌错误。
items
是一个对象数组。有些文档是空数组,有些则包含数据,其中包含date
字段。
谢谢!
答案 0 :(得分:38)
使用点表示法时,您需要将键值放在引号中,这样您的sort
对象应该是这样的:
sort: {
"items.date" : 1
}
这将按每个文档的date
数组中的最小items
值进行升序排序