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

मैं कैसे एक एकत्रीकरण का उपयोग कर mongodb से दो तिथियों के बीच डेटा वापस फ़िल्टर कर सकता हूं:मैच, लुकअप और प्रोजेक्ट?

आपका समाधान लगभग सही दिखता है, बशर्ते कि dateStart और dateStart वास्तव में Date हैं ऑब्जेक्ट्स और नहीं String एस.

आपका कोशिश करें 2 अधूरा था मुझे यकीन नहीं है कि यह $lookup . का उपयोग करता है 1 प्रयास करें . से या नहीं। यदि ऐसा है तो आपको $lookup . का आउटपुट सुनिश्चित करना होगा $filter . के इनपुट के समान है . तो आपको as बदलना चाहिए $lookup . में input . से मिलान करने के लिए $filter . का

{
  $lookup: {
    from: "notifications",
    localField: "accessToken",
    foreignField: "accessToken",
    as: "items" // here
  }

}

वैकल्पिक समाधान

मुझे यकीन नहीं है कि आप आउटपुट के रूप में क्या चाहते हैं। यदि आपको उपयोगकर्ता ऑब्जेक्ट के बिना केवल सूचनाओं की सरणी की आवश्यकता है, तो आप निम्न को आजमा सकते हैं।

[{
  $match: { userId: mongoose.Types.ObjectId(userId) }
}, {
  $lookup: {
    from: "notifications",
    localField: "accessToken", // don't forget to index register.accessToken
    foreignField: "accessToken", // don't forget to index notification.accessToken
    as: "notifications"
  }
}, {
  $unwind: "$notifications"
}, {
  $match: { 
    dateCreated: { $gte: dateStart, $lte: dateEnd } // dateStart, dateEnd should be Date objects
  }
}, { // optional, move notifications to top lvel
  $replaceRoot: { root: '$notifications' }
}]



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. स्प्रिंग डेटा MongoDB - $eq $project समर्थन के भीतर

  2. अलग-अलग प्रतिकृति सेट सदस्यों पर अलग-अलग इंडेक्स

  3. विरल का उपयोग करना:सच अभी भी MongoError हो रहा है:E11000 डुप्लिकेट कुंजी त्रुटि

  4. उप सरणी के अंदर मोंगोडब अपडेट ऑपरेशन

  5. birt . में सरणी सूची से समूह बनाना और डेटा का विश्लेषण करना