node.js - Meteor - collection.find() 总是返回所有字段

标签 node.js mongodb meteor

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

类似的命令

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

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

最佳答案

你的语法有点不对,应该是

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

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

您的模板确实可以控制显示哪些数据,但仍有许多字段限制有意义的场景 - 数据隐私或效率(所有记录的某些字段,“当前”记录的所有字段)是两个常见的

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

--

仔细检查您是否也删除了 autopublish 包,但是如果您有该包并编写自己的发布函数,您应该会看到一个警告,这是您最常使用 字段

关于node.js - Meteor - collection.find() 总是返回所有字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15961456/

相关文章:

Node.js、NPM、代理和 node_modules

javascript - GraphQL-js 变异可选参数

javascript - meteor 通用代码中的多个集合

node.js - mailgun 传入邮件事件获取附件 url

node.js - 如何处理来自SQS的多条消息?

node.js - Node/Express API,使用 JWT token 的电子邮件验证,意外行为

javascript - 如何打印 MongoDB 数组中嵌入文档的值?

python - 存储来自多个进程的数据的简单方法

meteor - meteor 雨刷

javascript - Meteor:Autoform 未向 mongo 提交帖子