MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Какво правя грешно, когато манипулирам данни в Meteor/MongoDB?

Помощниците на шаблоните са реактивни, което означава, че се актуализират, когато състоянието на приложението се промени или се появят нови данни. Във вашия случай помощникът се извиква незабавно, когато шаблонът се визуализира и преди Meteor.users колекцията е попълнена. Следователно .findOne() методът връща недефиниран. Той ще бъде коригиран при второто преминаване след пристигането на нови данни.

Лесното решение тук е да проверите дали данните присъстват в помощника:

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

В реалния живот вероятно ще искате да изчакате основните данни да бъдат заредени, преди да изобразите шаблона. Това обикновено се прави на ниво контролер.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Какво прави всеки процес на Meteor?

  2. Ако имам идентификатор на документ mongo като низ, как да го потърся като _id?

  3. MongoDB намиране на всички свойства на документа

  4. Възможност за стартиране на MongoDB на Linode 512 VPS?

  5. Данни за присъединяване към Mongoose