0

私はこのマングーススキーマを持っています:

UserSchema = new db.Schema({
        objA                : [objA.Schema],
        objB                : [objB.Schema],
        objC                : [objC.Schema],
        objD                : [objD.Schema],
        friends             : [db.Schema.Types.ObjectId]
}

このクエリを使用して、オブジェクトの内容に基づいて_id内部の sを取得しました。objA, objB, objC and objDfriends

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);
        });

番組results:

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

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

すべてが期待どおりに正常に動作します。しかし、私の目標は、objA、B、C、および D のすべての _ids をコンテナー (おそらく配列、オブジェクト...わかりません) 内に配置することです。ここで、それらをタイムスタンプで簡単に並べ替えて、UI に入力することができます。これには非常に便利なアプローチがあると思います。何か案は?ティア

4

1 に答える 1

1

MongoDB はクエリに組み込みの sort() オプションを提供しており、Mongoose を介してこの機能を簡単に使用できます。Mongoose を使用する場合、返されたオブジェクトを複数回反復処理することもできます (反復後に使い果たされるカーソルとは異なります)。したがって、次のように、クエリに「並べ替え」オプションを含めることで、タイムスタンプで並べ替えられた順序でドキュメントを返すクエリを簡単に作成できます。

var query = myModel.find({}, null, { sort : { timestamp : 1 }});
于 2013-09-18T18:00:42.233 に答える