MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

MongoDB फिल-इन डेटा जो क्वेरी परिणाम में शामिल नहीं है

यह $range . के माध्यम से संभव है एक श्रेणी उत्पन्न करने और स्वयं देखने के लिए

कदम

  1. $group - न्यूनतम और अधिकतम तिथि को गतिशील रूप से खोजें, यदि आवश्यक हो तो हार्ड-कोड
  2. $project - $range उत्पन्न करें , न्यूनतम और अधिकतम के आधार पर, यदि आवश्यक हो तो हार्ड-कोड
  3. $unwind - दस्तावेज़ के लिए सीमा खोलें
  4. $project - जनरेट किए गए नंबर से तारीख जेनरेट करें
  5. $lookup - तिथि के आधार पर संग्रह के साथ स्वयं जुड़ें
  6. $project - यदि मैच में वापसी की संख्या पाई जाती है, तो 0. बदलें $ifNull करने के लिए $cond अगर मोंगो संस्करण 3.6 से कम है

कुल पाइपलाइन

db.t.aggregate(
    [   
        {
            $group : { _id : null, startDate : { "$min" : "$date" }, endDate : { "$max" : "$date" }} 
        },
        {
            $project : { _id : 0 , startDate : 1,  genNo : { $range : [ { $add : [ {"$dayOfMonth" : "$startDate"}, -1 ] }, { $add : [ {"$dayOfMonth" : "$endDate"} , 1 ] } ] } }
        },
        {
            $unwind : "$genNo"
        },
        {
            $project : { genDate : { $add : [ "$startDate", { $multiply : [ "$genNo" , 86400000 ] } ] } }
        },
        {
            $lookup : {
                from : "t",
                localField : "genDate",
                foreignField : "date",
                as : "out"
            }
        },
        {
            $project : { date : "$genDate", count : { $ifNull : [ { $arrayElemAt : ["$out.count", 0 ] }, 0 ] } }
        }
    ]
)

संग्रह

> db.t.find()
{ "_id" : ObjectId("5a5d78d5423b9839ce07bd77"), "date" : ISODate("2018-01-01T00:00:00Z"), "count" : 3 }
{ "_id" : ObjectId("5a5d78d5423b9839ce07bd78"), "date" : ISODate("2018-01-04T00:00:00Z"), "count" : 5 }
> 

एकत्रीकरण परिणाम

{ "date" : ISODate("2018-01-01T00:00:00Z"), "count" : 3 }
{ "date" : ISODate("2018-01-02T00:00:00Z"), "count" : 0 }
{ "date" : ISODate("2018-01-03T00:00:00Z"), "count" : 0 }
{ "date" : ISODate("2018-01-04T00:00:00Z"), "count" : 5 }
{ "date" : ISODate("2018-01-05T00:00:00Z"), "count" : 0 }
> 



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. नेवला .save () खाली त्रुटि वस्तु देता है, DB में सहेजता नहीं है

  2. मैं पिमोंगो में सशर्त खोज कैसे कर सकता हूं?

  3. MongoDB - सभी वस्तुओं को लूप किए बिना जावा में संग्रह की प्रतिलिपि बनाएँ

  4. मोंगोइड हैश फील्ड पर प्रश्न

  5. Find और FindAsync के बीच अंतर