Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript MongoDB按嵌套对象值排序_Javascript_Mongodb_Node Mongodb Native - Fatal编程技术网

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如何解决此问题?我按降序排序,没有嵌套值的文档显示在顶部