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

MongoDB Mongoose दिनांक सीमा के अनुसार उप-दस्तावेज़ों की एक गहरी नेस्टेड सरणी की क्वेरी कर रहा है

यहाँ समस्या यह है कि WorkDoneBy एक अन्य सरणी में नेस्टेड एक सरणी है (ItemReport ) इसलिए सिंगल $filter पर्याप्त नहीं है क्योंकि आपको दो बार पुनरावृति करने की आवश्यकता है। आप $map जोड़ सकते हैं बाहरी सरणी पर पुनरावृति करने के लिए:

db.records.aggregate([
    {
        "$project": {
            "ItemReport": {
                $map: {
                    input: "$ItemReport",
                    as: "ir",
                    in: {
                        WorkDoneBy: {
                            $filter: {
                                input: "$$ir.WorkDoneBy",
                                as: "value",
                                cond: {
                                    "$and": [
                                        { "$ne": [ "$$value.DateCompleted", null ] },
                                        { "$gt": [ "$$value.DateCompleted", new Date("2017-01-01T12:00:00.000Z") ] },
                                        { "$lt": [ "$$value.DateCompleted", new Date("2018-12-31T12:00:00.000Z") ] }
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        }
    }
])


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. उस क्रम को संशोधित करें जिसमें MongoDB में गुण प्रदर्शित होते हैं

  2. उप-दस्तावेज़ फ़ील्ड वाइल्डकार्ड पर टेक्स्ट इंडेक्स बनाएं

  3. मोंगोडब रिटर्न ऑब्जेक्ट को डिक्शनरी में बदलें

  4. MongoAlchemy क्वेरी एम्बेडेड दस्तावेज़

  5. MongoDB में विशाल सरणी पर कैसे एकत्रित करें?