Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.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
Node.js Mongoose将所有查询结果存储在可排序的容器中_Node.js_Mongodb_Express_Mongoose - Fatal编程技术网

Node.js Mongoose将所有查询结果存储在可排序的容器中

Node.js Mongoose将所有查询结果存储在可排序的容器中,node.js,mongodb,express,mongoose,Node.js,Mongodb,Express,Mongoose,我有一个猫鼬模式: UserSchema = new db.Schema({ objA : [objA.Schema], objB : [objB.Schema], objC : [objC.Schema], objD : [objD.Schema], friends : [

我有一个猫鼬模式:

UserSchema = new db.Schema({
        objA                : [objA.Schema],
        objB                : [objB.Schema],
        objC                : [objC.Schema],
        objD                : [objD.Schema],
        friends             : [db.Schema.Types.ObjectId]
}
我使用此查询根据
friends
对象的内容获取
objA、objB、objC和objD中的
\u id
s:

user.Model
        .find({
            _id : {
                $in : friends
            }
        })
        .select('-_id objA._id objB._id objC._id objD._id') //get the _ids
        .exec(function(err, results) {
            console.log(results);
        });
结果显示:

[ { objD: [ { _id: 52395c8cee93d72344000009 } ],
    objC: [],
    objA: 
     [ { _id: 52395a408078b3f42200000d },
       { _id: 52395cc1ee93d7234400000c } ],
    objB: [ { _id: 52395d06ee93d7234400000f } ] },

  { objD: [],
    objC: [],
    objA: [ { _id: 52395a248078b3f422000009 } ],
    objB: [] } ]

一切正常。但我的目标是将objA、B、C和D的所有_id放在一个容器中(可能是一个数组、对象……我不知道),在这个容器中,我可以轻松地按时间戳对它们进行排序,并用它们填充UI。我认为这是一种非常方便的方法。有什么想法吗?TIA

MongoDB为其查询提供了内置的sort()选项,您可以通过Mongoose轻松使用此功能。使用Mongoose时,您还可以多次迭代返回的对象(不像游标,它在迭代后会耗尽)。因此,您只需在查询中包含“sort”选项,即可让查询按时间戳排序的顺序返回文档,如下所示:

var query = myModel.find({}, null, { sort : { timestamp : 1 }});

是否有一种方法可以将它们全部存储在一个数组中,在这个数组中,它们已经按时间戳排序,而我所需要的只是在上面做一个循环?短暂性脑缺血发作