그래서 두 가지 기능이 있습니다. InsertOne() 함수는 잘 작동하며 BsonDocument는 새로 만든 _id로 업데이트됩니다. 그러나 InsertMany() 함수는 개체 ID를 반환하지 않습니다. 코드를 디버깅했으며 개별 문서 중 어느 것도 _id 필드로 업데이트되지 않았습니다.삽입 후 C# MongoDB InsertMany missing _id
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();
}
편집 - 이것은 버그,하지만 난 대신 IEnumerable을의 InsertMany() 예상대로 작동의 목록을 사용하는 경우 난 그냥 깨달았다 확실하지.