_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个字符的十六进制字符串。
这里有两件不同的事情。要创建新的ObjectId,请使用:
var id = ObjectId.GenerateNewId();
您所拥有的是"BSON类型"枚举的常数值,对于"ObjectId",该常数值为7。
所以"创建"一个ObjectId。您现在所要做的就是调用该类型的常数值。