MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Permintaan untuk mendapatkan nilai dengan mengurangi nilai dari dokumen saat ini dan berikutnya

Anda dapat mencoba agregasi di bawah ini tetapi saya tidak akan menyarankan Anda untuk menggunakan ini dengan kumpulan data yang besar.

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. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Bagaimana cara menginstal mongodb-clients versi terbaru di Ubuntu?

  2. Bagaimana cara mendapatkan kembali ruang yang dihapus tanpa `db.repairDatabase()`?

  3. Driver Mongodb C# - tidak dapat menggunakan otentikasi admin untuk mengakses database lain

  4. Pengemudi Mongo Java tidak mematuhi metode batas

  5. Performa kueri MongoDB untuk lebih dari 5 juta catatan