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

फ़ील्डपाथ फ़ील्ड नामों में '.' नहीं हो सकता है AGGREGATE का उपयोग करने का प्रयास करते समय

आप नीचे दी गई क्वेरी का उपयोग कर सकते हैं

अगर आप $expr का इस्तेमाल कर रहे हैं तो आप इसके अंदर आसानी से एग्रीगेशन ऑपरेटर का इस्तेमाल कर सकते हैं। तो .dot . का उपयोग करने के बजाय तत्व को खोजने के लिए संकेतन, आप उपयोग कर सकते हैं $arrayElemAt ऑपरेटर जो आपको मनचाहा तत्व चुनने की सुविधा प्रदान करता है।

db.table.aggregate([
  { '$match': {
    '$expr': {
      '$and': [
        { '$eq': [{ '$size': '$events' }, 4] },
        { '$lt': [{ '$arrayElemAt': ['$events.updated', 0] }, '2019-05-05'] }
      ]
    }
  }}
])

या जिस तरह से आप करने की कोशिश कर रहे थे

db.collection.aggregate([
  { "$match": {
    "events.0.updated": { "$lt": "2019-05-05" },
    "$expr": { "$eq": [{ "$size": "$events" }, 4] }
  }}
])

आप $expr देख सकते हैं व्यवहार यहां




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoExport बहुत अधिक स्थितीय विकल्प

  2. कस्टम बीएसओएन मार्शलिंग को संभालना

  3. मोंगोडब में एक उप-दस्तावेज़ फ़ील्ड को गतिशील रूप से $ कैसे सेट करें?

  4. $expr arrayElementएम्बेडेड दस्तावेज़ के लिए एकत्रीकरण में काम नहीं कर रहा है

  5. MongoDB / Geojson $geointersects समस्याएं