我到处寻找这个,但我无法找到任何关于此事的内容。如果您没有在MongoDB中预定义字段,那么具有“插入”权限的用户就无法插入包含他想要的各种字段的文档?通过Collection.insert?如果我在这里思考正确,有没有办法限制这个?
答案 0 :(得分:0)
这是我个人的偏好。因为fieldNames参与其中
Collections.update(userId, doc, fieldNames)
仅提供doc中的顶级字段。因此,如果您有嵌套字段,则很难跟踪。
所以我不使用收集允许/拒绝规则。没有允许拒绝规则Collections.insert / Collections.update在客户端上不执行任何操作。相反,我使用Meteor方法更新/删除文档到集合,因此我可以决定更新/插入哪些确切的字段。
答案 1 :(得分:0)
您可以通过以下两种方式限制插入任何类型的字段:
使用collection.allow/deny
(http://docs.meteor.com/#/full/allow) - insert
回调有一个doc
参数,其中包含用户想要插入的确切文档 - 您可以查看它的内容,如果您发现不允许的字段,则拒绝插入。
使用SimpleSchema(https://github.com/aldeed/meteor-simple-schema)和Collection2(https://github.com/aldeed/meteor-collection2)软件包来定义架构并将其附加到您的集合 - 如果文档具有其他/缺少字段,它将阻止插入(或非预期类型的字段)。