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

नेवला मार्गों में वादों का उपयोग करना

ठीक है, पहले आप mongoose का उपयोग कर रहे हैं सही?

User आपका नेवला मॉडल है जो findOne(query) . जैसी विधियों का जवाब देता है , findOneAndUpdate(query, update, opts) आदि..

इनमें से किसी भी तरीके को कॉल करने के बाद, मेथड को exec() कॉल करें जो एक क्वेरी देता है।

एक प्रश्न वास्तव में एक वादा नहीं है और आपको यह निर्दिष्ट करना होगा कि मोंगो किस वादे का उपयोग करेगा। यहां मैं देशी लोगों का उपयोग करने की सलाह दूंगा, इसलिए इस लाइन को अपने प्रोजेक्ट में जोड़ें:

 const mongoose = require('mongoose')
 mongoose.Promise = Promise

अब, यह निर्देश आपको एक वादा लौटा रहा है, अच्छा!

User.findOne(q).exec()

अब आप अपने तर्क के साथ एक वादा श्रृंखला बना सकते हैं, उदाहरण के लिए:

 return User
     .findOne(_id)
     .exec()
     .then((user) => {
       return Receipt
         .findOne({ bookName: user.bookName })
         .exec()
       })
     .then((receipt) => {
            // example
            return res.status(200).json(receipt)
         }))
     })

युक्ति:मैं कोड को और अधिक साफ-सुथरा बनाने के लिए aux तरीके बनाने का सुझाव दूंगा:

/** @return {Promise} */
function findUser(id) {
  return User.findOne(id).exec()
}

/** @return {Promise} */
function findReceipt(bookName) {
  return Receipt.findOne({ bookName }).exec()
}

// example
function f(req, res) {
  const userId = req.get('id')

  return findUser(userId)
    .then((user) => findReceipt(user.bookName))
    .then((receipt) => res.status(200).json(receipt))
    .catch((err) => res.status(500).json(null))
}

// register your handler
app.get('/book', f)



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. मैं मोंगो कंसोल में ऑब्जेक्ट आईडी द्वारा ऑब्जेक्ट की खोज कैसे करूं?

  2. स्पार्क - प्रत्येक निष्पादक संदर्भ के लिए अलग-अलग चर कैसे बनाएं?

  3. सी # मोंगोडीबी - एक आईडी के आधार पर नेस्टेड दस्तावेज़ की सरणी से एक आइटम खींचें

  4. स्प्रिंग डेटा मोंगो डीबी एकत्रीकरण

  5. मोंगोडीबी $substrBytes