MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Làm cách nào để bạn tham gia vào một mảng trong mongoose (mongodb) với node.js?

vấn đề lớn nhất với mã của bạn là bạn cho rằng mã chạy đồng bộ - nhưng không. nó chạy không đồng bộ. vì vậy thông báo vẫn chưa được đặt khi bạn thực thi

 console.log(messages);

thay vào đó hãy làm điều gì đó như thế này:

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

chỉnh sửa được rồi, tôi hiểu rồi. bạn muốn thêm userInfo vào các message khác nhau. cách tốt nhất để đạt được điều này là sử dụng mô-đun không đồng bộ: 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. MongoDB - kích thước tệp lớn và ngày càng tăng

  2. 3 cách để có được một tuần từ một ngày trong MongoDB

  3. mongoose:tìm dữ liệu bằng cách lặp lại trên một mảng mô hình

  4. đóng kết nối mongodb trong node.js trong khi chèn nhiều dữ liệu

  5. viết cú pháp mongoDB