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

遇到这个(有点烦人的问题)我正在尝试查找集合中的所有记录,而不是显示(或显示)特定字段(分数)。这只是一个示例,并不反射(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 包,但是如果您有该包并编写自己的发布函数,您应该会看到一个警告,这是您最常使用 字段

https://stackoverflow.com/questions/15961456/

相关文章:

mongodb - 如何在 docker 容器中启动 mongodb shell?

javascript - 是否可以在 javascript 执行中写入 mongodb 控制台?

mongodb - 将对象插入 Mongoose 中的数组模式

javascript - 在 javascript 中创建一个 ISO 日期对象

node.js - Express.js 在 MEAN 堆栈中做了什么?

javascript - 如何获取在另一个模型中定义的 Mongoose 数据库的架构

date - 在MongoDB中按日期分组

mongodb - MongoDB 的 'lost data' 批评在多大程度上仍然有效?

mongodb - Mongo,通过 id 列表查找

php - MongoDB 和 CodeIgniter