在Sql Server和Oracle中,我可以使用sequence获取ID。我想知道MongoDB中是否有等价物。我想首先获取id,然后将它存储在多个位置,包括RDBMS。这可能吗?
答案 0 :(得分:1)
AFAIK--在Mongo中没有相同的东西。 考虑服务器端javascript,但说实话,在这种情况下,我要做的是将此职责转移到应用程序域,使用集合之一作为跟踪(比如说最后一个序列) - 换句话说,手动顺序函数实现。
答案 1 :(得分:1)
即使MongoDB没有提供开箱即用的自动递增序列,但所有构建块都可用,MongoDB文档提供了有关如何实现它们的建议:https://docs.mongodb.org/manual/tutorial/create-an-auto-incrementing-field/
我认为值得注意的是,MongoDB取而代之的是使用自然唯一标识符,否则 - 生成ObjectId(未对每个新实例进行排序,但每个新实例都是唯一的)。也就是说,例如,如果在未分配_id
的情况下保存文档,则DB 客户端将自动为其生成ObjectId。默认情况下,此功能内置于所有客户端API中。
如果要重用分配给新文档的ObjectId,有两个选项:
_id
field值_id
字段