所以我有兩個函數,如下所示。 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()按預期工作我才意識到。