2016-03-28 9 views
-1

Im‘C# Treiber zu einer mongodb Datenbank verbinden ich diesen Code verwendenReplaceOneAsync ersetzt nicht das Dokument

Dank ein Dokument

Mytype new_doc ; 
var filter = Builders<Mytype>.Filter.Eq(c => c.id, 
new ObjectId("56f908cbe9dea82560d93fb4")); 

var result = await collection.ReplaceOneAsync(filter, cnew_doc, new UpdateOptions { IsUpsert = true }); 

Aber das Dokument keine Änderungen in th Datenbank zu aktualisieren ,

Antwort

0

Sie haben Fehler im Filter. Ich frage mich, wenn Ihr Code kompiliert oder nicht, aber unter der Annahme c.id ist MongoDB ObjectId

ersetzen
var filter = Builders<Mytype>.Filter.Eq(c => c.id = "56f908cbe9dea82560d93fb4"); 

Mit

Wenn c.id ist MongoDB ObjectId:

var filter = Builders<Mytype>.Filter.Eq(c => c.id, 
    new ObjectId("56f908cbe9dea82560d93fb4")); 

Ansonsten:

var filter = Builders<Mytype>.Filter.Eq(c => c.id, "56f908cbe9dea82560d93fb4"); 
+0

ich ersetzt aber immer noch das gleiche Problem. Gibt es eine Möglichkeit, den Filter alleine zu testen? –

+0

Wie kann ich Filter testen? Ich würde vorschlagen, Ihren Beitrag zusammen mit Beispieldaten zu aktualisieren. Geben Sie den erforderlichen ausführbaren Code zum Testen ein. – Saleem

+0

Ich habe den Filer in einer Finde-Methode getestet und es funktioniert –

Verwandte Themen