因此,MongoDB不支持缩放目的的自动增量。
我的问题是,那么,我用什么来约束呢?
我应该使用对象id作为查找某些东西的约束吗?这不是很慢吗?(这是一个12-BYTE字段!)
我是否应该使用唯一的键作为一种“主键”?比如Books.find('actual-author-name')?这样会更快吗?
基本上,这样做的一般/公认方式是什么?
发布于 2014-01-09 12:58:09
如果您已经有了一个合适的键,请使用该字段作为集合之间关联的_id字段。您也可以依赖12字节字段,因为它实际上并不多。还请检查使用嵌入式文档是否不容易,以避免将所有链接放在一起--这通常是像MongoDB这样的文档数据库中的首选解决方案。
发布于 2014-01-09 12:59:46
You 使用自动递增字段。在MongoDB的文档中看到以下代码:
http://docs.mongodb.org/manual/tutorial/create-an-auto-incrementing-field/#a-counters-collection
这是对一个广泛问题的基于意见的回答,我提供给您的代码使用另一个集合来完成它所做的事情,但我的重点是,您可以自动递增字段。
发布于 2014-01-09 14:52:55
自动增量的要点通常是自动生成键值,这些键值保证是唯一的.
MongoDB ObjectID不仅对集合是唯一的,而且甚至是全局唯一的,从而完全填补了这个角色。它们也是按升序排列的,因为它们以当前时间戳开始。
它们不能保证是连续的,但是SQL数据库中的自动增量列也不是,因为当您删除记录时,该ID将不会被重用。
注意,_id字段MongoDB不一定需要是ObjectID。您还可以对其进行任何其他数据的转换。因此,当您的数据集已经具有唯一标识符时,可以在插入文档之前手动填充_id来使用这些标识符。_id字段甚至不必是一个原始值。它甚至可以是一个物体。因此,您可以拥有这样的多字段主键:
_id: { first_name = "John", last_name = "Smith" }https://stackoverflow.com/questions/21020892
复制相似问题