你可以在Meteor / MongoDB文件中预定义允许的字段吗?

时间:2016-01-18 08:59:03

标签: mongodb meteor collections

我到处寻找这个,但我无法找到任何关于此事的内容。如果您没有在MongoDB中预定义字段,那么具有“插入”权限的用户就无法插入包含他想要的各种字段的文档?通过Collection.insert?如果我在这里思考正确,有没有办法限制这个?

2 个答案:

答案 0 :(得分:0)

这是我个人的偏好。因为fieldNames参与其中 Collections.update(userId, doc, fieldNames)仅提供doc中的顶级字段。因此,如果您有嵌套字段,则很难跟踪。

所以我不使用收集允许/拒绝规则。没有允许拒绝规则Collections.insert / Collections.update在客户端上不执行任何操作。相反,我使用Meteor方法更新/删除文档到集合,因此我可以决定更新/插入哪些确切的字段。

答案 1 :(得分:0)

您可以通过以下两种方式限制插入任何类型的字段:

  1. 使用collection.allow/denyhttp://docs.meteor.com/#/full/allow) - insert回调有一个doc参数,其中包含用户想要插入的确切文档 - 您可以查看它的内容,如果您发现不允许的字段,则拒绝插入。

  2. 使用SimpleSchema(https://github.com/aldeed/meteor-simple-schema)和Collection2(https://github.com/aldeed/meteor-collection2)软件包来定义架构并将其附加到您的集合 - 如果文档具有其他/缺少字段,它将阻止插入(或非预期类型的​​字段)。