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

現在および次のドキュメントから値を減算して値を取得するためのクエリ

    以下の集計を試すことができますが、大規模なデータセットでこれを使用することはお勧めしません。

    db.collection.aggregate([
      { "$match": {
        "date" : {
          "$gte": new ISODate("2018-09-01T00:00:00.000Z"),
          "$lte": new ISODate("2018-09-12T23:59:59.000Z")
        }
      }},
      { "$unwind": "$reading" },
      { "$sort": { "date": -1 }},
      { "$group": { "_id": null, "data": { "$push": "$$ROOT" }}},
      { "$project": {
          "data": {
            "$filter": {
              "input": {
                "$map": {
                  "input": { "$range": [0, { "$size": "$data" }] },
                  "as": "tt",
                  "in": {
                    "$let": {
                      "vars": {
                        "first": { "$arrayElemAt": ["$data", "$$tt"] },
                        "second": { "$arrayElemAt": ["$data", { "$add": ["$$tt", 1] }] }
                      },
                      "in": {
                        "currentWeight": "$$first.reading.weight.measurement",
                        "weightDifference": { "$subtract": ["$$second.reading.weight.measurement", "$$first.reading.weight.measurement"] },
                        "_id": "$$first._id",
                        "date": "$$first.date"
                      }
                    }
                  }
                }
              },
              "cond": { "$ne": ["$$this.weightDifference", null] }
            }
          }
        }
      },
      { "$unwind": "$data" },
      { "$replaceRoot": { "newRoot": "$data" }}
    ])
    



    1. mongodbの配列のn番目の要素を削除する方法

    2. Mongodbは日付の間にドキュメントを取得します(20-05-2019の形式で文字列として保存されます)

    3. MongoDB / PyMongo:複数の基準のクエリ-予期しない結果

    4. 何十億ものデータをRedisに効率的に挿入するにはどうすればよいですか?