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

過去24時間のドキュメントのマングースクエリ、1時間に1つのドキュメントのみ

    集計を使用する

    これはすばらしい記事です ドキュメントをグループ化する方法については、ドキュメントごとに1つのアイテムを選択してください。

    また、過去24時間のドキュメントをフィルタリングしてから、検索とhourを予測する必要があります。 タイムスタンプから。

    クエリは次のようになります

    collection.aggregate([
      {
        "$filter": {
          "createdAt": { $gt: new Date(Date.now() - 24*60*60 * 1000) }
        }
      },
      {
        "$project": {
          "h": {"$hour" : "$createdAt"},
          "original_doc": "$$ROOT"
        }
      },
      {
        "$group": {
          "_id": { "hour": "$h" },
          "docs": { $push: "$original_doc" } 
        }
      },
      { 
        $replaceRoot: {
          newRoot: { $arrayElemAt: ["$docs", 0] }
        }
      }
    ])
    


    1. マングースの条件でルックアップ

    2. gridfs getがファイル名だけでファイルID(ObjectId)を処理しない理由

    3. mongodbドキュメントのすべての配列要素を特定の値に変更するにはどうすればよいですか?

    4. 複数のAWSインスタンスでのMongoDBロードバランシング