所以我有两个函数,如下所示。 InsertOne()函数工作正常,BsonDocument用新创建的_id更新。但是,InsertMany()函数不返回对象标识。我调试了代码,没有一个单独的文档用_id字段进行更新。C#MongoDB InsertMany插入后缺少_id
InsertMany()函数确实将文档插入到数据库中,我可以看到它们都具有来自Mongo shell的对象标识符。
我的代码中的模型没有Id字段。他们正在使用像MyModel.ToBsonDocument()这样的代码进行转换。
我是否错过了某些东西以获取批量插入生成的ID?
public string InsertOne(BsonDocument document)
{
MongoCollection.InsertOne(document);
return document["_id"].ToString();
}
public string[] InsertMany(IEnumerable<BsonDocument> documents)
{
MongoCollection.InsertMany(documents);
return documents.Select(item => Convert.ToString(item["_id"])).ToArray();
}
编辑 - 不知道这是一个错误,但如果我用一个列表,而不是IEnumerable的,在InsertMany()按预期工作我才意识到。