是否SEQUENCE在MongoDB中是等价的

时间:2016-03-12 21:05:40

标签: c# mongodb

在Sql Server和Oracle中,我可以使用sequence获取ID。我想知道MongoDB中是否有等价物。我想首先获取id,然后将它存储在多个位置,包括RDBMS。这可能吗?

2 个答案:

答案 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,有两个选项: