_id vs. _Id in mongoDB

本文关键字:mongoDB in vs id Id | 更新日期: 2023-09-27 18:29:23

在这个MSDN示例中,当我第二次运行它时,"author"answers"title"的值不同

using (mongo.RequestStart(db)) 
{ 
    var collection = db.GetCollection<BsonDocument>("books"); 
    BsonDocument = new BsonDocument() 
        .Add("_id", BsonValue.Create(BsonType.ObjectId)) 
        .Add("author", "Ernest Hemingway") 
        .Add("title", "For Whom The Bell Tolls"); 
        collection.Insert(book); 
}

我收到了以下错误:其他信息:WriteConcern检测到错误"。(响应为{"err":"E11000重复密钥错误索引:test.test.$id重复密钥:{:7}","code":11000,"n":0,"connectionId":4,"ok":1.0})。

基本上,"_id"再次获得值7。我认为BsonValue.Create(BsonType.ObjectId)应该创建一个唯一的24个字符的十六进制字符串。

_id vs. _Id in mongoDB

这里有两件不同的事情。要创建新的ObjectId,请使用:

 var id = ObjectId.GenerateNewId();

您所拥有的是"BSON类型"枚举的常数值,对于"ObjectId",该常数值为7。

所以"创建"一个ObjectId。您现在所要做的就是调用该类型的常数值。