sql >> Database teknologi >  >> NoSQL >> MongoDB

Hvad gør jeg forkert, når jeg manipulerer data i Meteor/MongoDB?

Skabelonhjælpere er reaktive, hvilket betyder, at de opdaterer sig selv, efterhånden som apptilstanden ændres, eller nye data vises. I dit tilfælde tilkaldes hjælperen straks, når skabelonen gengives, og før Meteor.users samlingen er fyldt. Derfor er .findOne() metode returnerer udefineret. Det vil blive rettet i den anden omgang, efter at nye data ankommer.

Den enkle rettelse her er at kontrollere, om data er til stede inde i hjælperen:

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

I det virkelige liv vil du sandsynligvis vente på, at de grundlæggende data bliver indlæst, før du gengiver skabelonen. Det gøres normalt på controllerniveau.



  1. Brug af Mongoose / MongoDB $addToSet-funktionalitet på en række objekter

  2. Spring Data MongoDB 4.0-transaktionsunderstøttelse

  3. i18Next - NodeJS - Sådan ændres oversættelser uden at genindlæse serveren

  4. pymongo fejl:bson.errors.InvalidBSON:'utf8' codec kan ikke afkode byte 0xa1 i position 25:ugyldig startbyte