MongoDB
 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. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. बहु-दस्तावेज़ लेनदेन में नाम स्थान नहीं बना सकता (MongoDB 4.0, स्प्रिंग डेटा 2.1.0, स्प्रिंग बूट)

  2. एक अलग समय क्षेत्र पर साल-महीने-दिन के आधार पर कैसे एकत्रित करें

  3. नेवला :मॉडलों की एक सरणी पर लूप करके डेटा खोजें

  4. मोंगोडब पाठ कई क्षेत्रों की खोज करता है

  5. नेवला में नेस्टेड संस्थाओं को कैसे आबाद करें?