使用Int64(BigInt)用于MongoDB的_id

时间:2015-01-22 03:30:35

标签: c# mongodb

我的应用程序使用SQL Server和MongoDB。为了链接双方的记录/文档,我考虑使用SQL的BigInt值(C#中的Int64)来代替MongoDB的_id。此BigInt值是从SQL Server Identity列生成的。我认为它很完美。

然而,在这个帖子中Is it bad to change _id type in MongoDB to integer? 有人提到MongoDB在插入之前必须检查它的唯一性。因此,如果使用ObjectId.GenerateNewId(),MongoDB不会检查唯一性吗?

1 个答案:

答案 0 :(得分:0)

Mongodb确实检查id的唯一ID,即使它的ObjectId类型。

创建新集合时,它会自动在_id字段上显示唯一索引。

  

_id Field Index

     

MongoDB创建_id索引,这是一个升序唯一索引   _id字段,用于创建集合时的所有集合。您   无法删除_id字段上的索引。

http://docs.mongodb.org/manual/core/index-single/http://docs.mongodb.org/manual/core/index-single/#cases

此规则的例外是上限集合,但没有这个 索引

由于Stennie发现MongoDb2.2 +中的上限集合有_id字段索引