sql >> データベース >  >> NoSQL >> MongoDB

mongodbアグリゲートでのみ最新のサブドキュメントを含むドキュメントを返す

    $unwindを使用できます 、$sort 、および$group 次のようなものを使用してこれを行うには:

    Thread.aggregate([
        // Duplicate the docs, one per messages element.
        {$unwind: '$messages'}, 
        // Sort the pipeline to bring the most recent message to the front
        {$sort: {'messages.date_added': -1}}, 
        // Group by _id+title, taking the first (most recent) message per group
        {$group: {
            _id: { _id: '$_id', title: '$title' }, 
            message: {$first: '$messages'}
        }},
        // Reshape the document back into the original style
        {$project: {_id: '$_id._id', title: '$_id.title', message: 1}}
    ]);
    



    1. MongoDBがコレクション名に複数形を追加するのを防ぐ方法はありますか?

    2. Mongoid:IDの配列から検索

    3. なぜこの非推奨の警告が表示されるのですか?! MongoDB

    4. MongoDBのオブジェクトを部分的に更新して、新しいオブジェクトが既存のオブジェクトとオーバーレイ/マージされるようにするにはどうすればよいですか?