【发布时间】:2014-06-19 22:32:47
【问题描述】:
当使用 mini-mongo 将文档插入集合中时,用户可以传递 _id 字段,并且只要文档是字符串或 ObjectID(并且不与现有 id 冲突),就会在文档上设置 _id。这对我来说似乎不明智。我希望文档的 _id 始终由服务器生成,所以我最终不会得到一个字符串(可能具有不同长度)和 ObjectID 都作为 _ids 存在的数据库。
有没有简单的方法来实现这一点?现在我能想到的最好的方法是在拒绝规则中检查 id(其中 _id 已经由 Meteor 设置或者是用户提供的值),如果它不是我想要的类型/长度,我会改变它,但这也需要检查以避免重复的ID。不太难,但对于像这样基本的东西来说似乎过于复杂。
【问题讨论】:
-
让客户端生成
_id字段的原因可能是为了最大化原理延迟补偿,这很好,但您担心的是我们必须为此付出的代价。然而,由于每个文档都必须有一个_id字段,所以对我来说很明显 Meteor 应该为我们验证它。可惜没有:/ -
如果您希望 _id 来自服务器,那么客户端可能只是在更新而不是插入。
标签: meteor