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

आप mongoose (mongodb) में node.js के साथ एक सरणी पर कैसे जुड़ते हैं?

आपके कोड के साथ सबसे बड़ी समस्या यह है कि आप कोड को समकालिक रूप से चलाने के लिए मानते हैं - लेकिन ऐसा नहीं है। यह अतुल्यकालिक रूप से चलता है। इसलिए जब आप निष्पादित करते हैं तो संदेश अभी तक सेट नहीं होते हैं

 console.log(messages);

इसके बजाय कुछ ऐसा करें:

var userIds = [id1, id2, id3];
User.find({"_id": {$in: userIds}}, function (err, users) {
  console.log(users);
});

संपादित करें ठीक है मैं समझा। आप विभिन्न संदेशों में userInfo जोड़ना चाहते हैं। इसे प्राप्त करने का सबसे आसान तरीका, async मॉड्यूल का उपयोग करना है:https ://github.com/caolan/async

async.map(messages, getUserInfo, function (err, result) {
  if (err) {
    console.log(err);
    return;
  }
  // log all msg with userinfo
  console.log(result);
});

function getUserInfo (msg, callback) {
  User.findById(msg.userId, function (err, user) {
    if (err) {
       callback(err);
       return;
    }
    msg.user = user;
    callback(null, msg);
  });
}



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. mongod का उपयोग करके utc में दिनांक संग्रहीत करते समय टाइमज़ोन समस्या से कैसे निपटें?

  2. सिद्धांत MongoDB आईडी द्वारा खोजें

  3. कमांड के माध्यम से मोंगोडब डेटा और लॉग फाइल लोकेशन कैसे खोजें?

  4. नेवला ऑब्जेक्ट आईडी को सरणी से खींचता है

  5. कोष्ठक और शब्द सीमा के साथ मोंगो $regex