MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Meteor - collection.find() gibt immer alle Felder zurück

Ihre Syntax ist ein bisschen daneben, das sollte es sein

CollectionName.find({}, {fields: {'onlyThisField':1}});

oder

CollectionName.find({}, {fields: {'everythingButThisField':0}});

Ihre Vorlage steuert tatsächlich, welche Daten angezeigt werden, aber es gibt immer noch viele Szenarien, in denen eine Feldbegrenzung sinnvoll ist – Datenschutz oder Effizienz (einige Felder aller Datensätze, alle Felder des „aktuellen“ Datensatzes) sind zwei häufige Gründe.

Sie haben es nicht erwähnt, aber dies ist normalerweise innerhalb einer Veröffentlichungsfunktion - siehe http://docs.meteor.com/#meteor_publish - die fields Der Modifikator ist auch auf dem Client verfügbar, aber dort beschränkt er die an den Client gesendeten Daten nicht, sondern nur auf die Vorlage - die serverseitige Feldreduzierung/-auswahl hat andere Vorteile

--

vergewissern Sie sich noch einmal, dass Sie autopublish entfernt haben Paket auch, aber Sie sollten eine Warnung sehen, wenn Sie dieses aktiv haben und Ihre eigenen Veröffentlichungsfunktionen schreiben, wo Sie am häufigsten fields verwenden würden