一尘不染

meteor-collection.find()始终返回所有字段

node.js

遇到这个问题(有点烦人),我正在尝试查找集合中的所有记录,而不显示(或显示)特定字段(得分)。这只是一个示例,并不能反映我的实际代码,但是问题总是可以重现的。我要排除的字段非常大,我只是试图生成可用记录的菜单。

像这样的命令

    players.find({},{score:1})
    players.find({},{score:0})

始终返回每个字段,而不是触发mongodb中的排除/包含。我不需要担心什么,因为模板可以控制哪些数据呈现为html?仍然感觉无论如何数据都已传输到客户端。并显示在控制台中。


阅读 237

收藏
2020-07-07

共1个答案

一尘不染

您的语法有点偏离,应该是

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

要么

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

您的模板确实可以控制显示哪些数据,但是在许多情况下,限制字段有意义-数据的保密性或效率(所有记录的某些字段,“当前”记录的所有字段)是两个常见的情况

你没有提到它,但是这通常是一个发布函数中-见http://docs.meteor.com/#meteor_publish
-的fields修改也可在客户端上,但它不限制数据发送到客户端,只模板-服务器端字段减少/选择具有不同的好处

-

仔细检查您是否也删除了该autopublish软件包,但是如果您具有该活动包并编写自己的发布函数,则应该看到一条警告,这是您最常用的地方fields

2020-07-07