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

Tôi đang làm gì sai khi thao tác dữ liệu trong Meteor / MongoDB?

Trình trợ giúp mẫu hoạt động, có nghĩa là chúng tự cập nhật khi trạng thái ứng dụng thay đổi hoặc dữ liệu mới xuất hiện. Trong trường hợp của bạn, trình trợ giúp được gọi ngay lập tức khi mẫu được hiển thị và trước Meteor.users bộ sưu tập được lấp đầy. Do đó, .findOne() phương thức trả về không xác định. Nó sẽ được sửa trong lần vượt qua thứ hai sau khi dữ liệu mới đến.

Cách khắc phục đơn giản ở đây là kiểm tra xem dữ liệu có bên trong trình trợ giúp hay không:

myClub: function(){
  var currenUserId = Meteor.userId();
  var user = Meteor.users.findOne({_id: currenUserId});
  if(!user) return 'NO DATA';
  return user.role;
},

Trong cuộc sống thực, bạn có thể muốn đợi dữ liệu cơ bản được tải trước khi hiển thị mẫu. Điều đó thường được thực hiện ở cấp bộ điều khiển.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB:Làm thế nào để kết hợp tất cả các kết quả từ cùng một bộ sưu tập?

  2. Làm thế nào để tạo Tài liệu Bson với giá trị Null bằng cách sử dụng trình điều khiển chính thức của C #?

  3. Cơ sở dữ liệu NoSQL

  4. Mongoose chuyển dữ liệu ra khỏi withTransaction helper

  5. MongoDB kéo phần tử mảng từ một bộ sưu tập