私は以下の2つの機能を持っています。 InsertOne()関数は正常に動作し、BsonDocumentは新しく作成された_idで更新されます。ただし、InsertMany()関数はオブジェクトIDを返していません。私はコードをデバッグし、個々のドキュメントは_idフィールドで更新されませんでした。C#MongoDB InsertMany missing _id insert after
InsertMany()関数はドキュメントをデータベースに挿入しますが、それらはすべてMongoシェルのオブジェクトIDを持つことがわかります。
私のコードのモデルには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();
}
EDIT - これはバグであるかどうかわからないが、私は代わりにIEnumerableを、InsertMany(のリストを使用する場合、私はちょうど実現)期待通りに動作します。