2010-08-18 93 views
3

为什么mongoid在关联中调用new时插入id,但在调用构建关联时插入id?mongoid新版本与构建

这是一个错误,或者这是它如何在mongoid中工作?

回答

2

这与您与其他ORM获得的行为相同,例如, SQLite ...#新不会创建一个ID,因为新对象还没有被保存/保存!

无论何时发生保存,下一个可用的ID用于新保存的对象......这意味着如果您有几个新对象,您不能为它们分配ID直到它们被保存,因为ID取决于他们被保存的顺序..

MongoDB ID不增加作为SQL DB中的ID,但它们包含时间戳作为键的一部分..因此再次依赖于保存/保持对象的顺序

此外:ID仅作为对保存对象的引用有意义 - 您可以使用#new创建对象并最终不保存它们 - 将ID分配给未保存的对象是没有意义的。