2017-05-05 8 views
0

1)Mongoにはドキュメントの一意の参照がある場合は、ドキュメント全体を に置き換えてください。2)If Mongoには一意の参照がありません。ドキュメントに新しいものを追加してください。このタスクを達成するために内蔵ものがあるC#Mongo Driver一括書換

//Filter to identify if MongoDB already contains the document 
var filter = Builders<MyClass>.Filter.In(x => x.Reference, documents.Result.Select(x => x.Reference)); 
//This is where I want to say delete and add new document but if it doesn't exist, add new 
var update = Builders<MyClass>.Update.Set(x => x, documents.Result.Find(x)); 
     await collection.UpdateManyAsync(filter,update); 

:私は私がしなければならないと思う何

はこのようなものでしょうか?私はリストを比較して、何を更新するのか、何を新たに追加するのかを把握しないようにしたい。私はMongoに何かが組み込まれていることを期待しています。

答えて

0

IsUpsert = trueでUpdateOptionsを渡すことができます。これはMongoDBに新しい文書がなければ挿入するように指示します。 Upsertは、更新と挿入のportmanteauです。

await collection.UpdateManyAsync(filter,update, new UpdateOptions() {IsUpsert = true}); 
関連する問題