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

MongoDB – として含むドキュメントを返すにはどうすればよいですか?

    これは、 $groupを使用した集約フレームワークで実現できます。 device_idでドキュメントをグループ化する 、その後に arrayToObject キーとして値を取得するには:

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

    db.collection.aggregate([{
      "$group": {
        "_id": "$device_id",
        "dt": {
          "$push": "$date"
        }
      }
    }, {
      "$replaceRoot": {
        "newRoot": {
          "$arrayToObject": {
            "$concatArrays": [
              [{
                "k": "$_id",
                "v": "$dt"
              }]
            ]
          }
        }
      }
    }])
    

    結果:

    [
      {
        "D4YK2-R2D20-KYPI9": [
          "2018-04-01T00:00:00.000Z"
        ]
      },
      {
        "ML39A-341D4-UI041": [
          "2018-03-28T00:00:00.000Z",
          "2018-03-29T00:00:00.000Z"
        ]
      }
    ]
    

    ここで試すことができます: mongoplayground.net/p/t9AjMA0nXCn




    1. 初心者のためのMongoDBを使用したPythonデータベースプログラミング

    2. マップ前の行と相関させる必要があるクエリの種類を減らします

    3. Angular2ExpressJs-サーバーへのファイルのアップロード

    4. 認証メカニズムSCRAM-SHA-1はサポートされていません