sql >> Database >  >> NoSQL >> MongoDB

Wat doe ik verkeerd bij het manipuleren van gegevens in Meteor/MongoDB?

Sjabloonhelpers zijn reactief, wat betekent dat ze zichzelf updaten wanneer de app-status verandert of nieuwe gegevens verschijnen. In uw geval wordt de helper onmiddellijk aangeroepen wanneer de sjabloon wordt weergegeven en vóór de Meteor.users collectie is gevuld. Daarom is de .findOne() methode retourneert undefined. Het wordt gecorrigeerd in de tweede doorgang nadat nieuwe gegevens zijn binnengekomen.

De eenvoudige oplossing hier is om te controleren of de gegevens aanwezig zijn in de helper:

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

In het echte leven wilt u waarschijnlijk wachten tot de basisgegevens zijn geladen voordat u de sjabloon rendert. Dat gebeurt meestal op controllerniveau.



  1. Een PHP-object invoegen in een MONGO DB

  2. Mongo-ID's leiden naar enge URL's

  3. Hadoop-tellers en soorten tellers in MapReduce

  4. MongoDB:gebruikers ingesloten in opmerkingen