Meteor - collection.find() retourne toujours tous les domaines
A couru dans tout cela (un peu ennuyeux problème) je suis en train de rechercher tous les enregistrements dans une collection et ne pas montrer (ou afficher) un domaine spécifique (score). C'est juste un exemple et n'est pas représentatif de mon code, mais le problème est toujours reproductible. Les champs je suis l'exclusion sont très gros et que je suis simplement en essayant de générer un menu des enregistrements disponibles.
Des commandes comme
players.find({},{score:1})
players.find({},{score:0})
Toujours revenir chaque champ, au lieu de déclenchement de l'exclure/inclure dans mongodb. Suis-je inquiet au sujet de rien, puisque le modèle potentiellement peut contrôler les données est rendu au format html? Se sent encore comme les données sont transférées sur le côté client, peu importe; et s'affiche dans la console.
- Votre syntaxe est erronée parce que vous supposez que Mongo syntaxe sera directement applicable à un Météore.
Vous devez vous connecter pour publier un commentaire.
votre syntaxe est un peu hors, il devrait être
ou
votre modèle, en effet, de contrôler les données affichées, mais il y a encore de nombreux scénarios où le champ de limitation de sens - la protection des données ou de l'efficacité (certains champs de tous les enregistrements, tous les champs de l'enregistrement) sont deux des plus communes
vous navez pas le mentionner, mais c'est généralement à l'intérieur d'une fonction publish - voir http://docs.meteor.com/#meteor_publish - le
fields
modificateur est également disponible sur le client, mais il ne limite pas les données envoyées vers le bas pour le client, juste pour le modèle de serveur - côté champ de réduction/de sélection a différents avantages--
vérifiez que vous avez retiré la
autopublish
paquet trop, cependant, vous devriez voir un message d'avertissement si vous en avez l'actif et écrire vos propres publier des fonctions, qui est l'endroit où vous utilisez le plus fréquemmentfields
CollectionName.find().fetch().filter(function(array,index){return new_array;});
fields
. docs.meteor.com/#/full/findD'abord, si vous voulez contrôler certains champs dans
Collection.find()
,vous pouvez essayer de le faire de cette façon:mais c'était en travaillant uniquement sur le serveur.
Ou essayez ceci:
Sur le serveur:
Sur le client:
puis exécutez
meteor remove autopublish
.Deuxième, si vous voulez obtenir le Tableau de la Collection.find(), essayer de le faire:
Collection.find().fetch();