为什么 mongoid 在关联上调用 new 时不插入 id,但在关联上调用 build 时插入 id?
这是一个错误还是它在 mongoid 中的工作方式?
为什么 mongoid 在关联上调用 new 时不插入 id,但在关联上调用 build 时插入 id?
这是一个错误还是它在 mongoid 中的工作方式?
这与其他 ORM 的行为相同,例如 SQLite ... #new 不会创建 ID,因为新对象尚未保存/持久化!
每当发生保存时,下一个可用 ID 将用于新保存的对象...这意味着如果您有几个新对象,则在保存它们之前无法为其分配 ID,因为 ID 取决于它们的顺序保存在..
MongoDB ID 不会作为 SQL DB 中的 ID 递增,但它们包含时间戳作为键的一部分。因此再次依赖于保存/持久化对象的顺序
另外:ID 仅作为对已保存对象的引用才有意义——您可以使用 #new 创建对象并最终不保存它们——将 ID 分配给未保存的对象是没有意义的。