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

MongoドキュメントをIDでグループ化し、タイムスタンプで最新のドキュメントを取得します

    集計を行う場合は、SQLと同様に行う必要があります。つまり、列ごとに集計操作を指定します。唯一のオプションは、$$ROOTを使用することです。 オペレーター

    db.test.aggregate(
       [
        { $sort: { timestamp: 1 } },
         {
           $group:
             {
               _id: "$fooId",
               timestamp: { $last: "$$ROOT" }
             }
         }
       ]
    );
    

    しかし、それは出力を少し変えるでしょう

    { "_id" : "1", "timestamp" : { "_id" : ObjectId("570e6be3e81c8b195818e7fa"), 
      "fooId" : "1", "status" : "A", "timestamp" :ISODate("2016-01-01T00:00:00Z"), 
      "otherInfo" : "BAR" } }
    

    元のドキュメント形式を返したい場合は、おそらくその後に$projectステージが必要です



    1. SQLを使用したMongoDB結合のリンクと作成:パート3

    2. node.jsサーバーを実行するにはインターネット接続が必要ですか?

    3. mongodbを使用して検索フィルタークエリを実装するにはどうすればよいですか?

    4. 要素が存在しない場所に配列を挿入し、そうでない場合は更新します(複数の条件で)