MongoDB entfernen Sie ein Filialdokument Dokument von einem Filialdokument
Benutze ich 10gen C# - Treiber für MongoDB und ich möchte Sie entfernen ein Filialdokument aus einem Filialdokument. Ich weiß nicht, wie es zu tun.
Hier ein Beispiel von dem, was aussieht wie mein Dokument
{
"_id": "binary_stuff",
"Name": "MyApplication",
"Settings": [
{
"_id": "binary_stuff",
"Key": "ImportDirectory",
"Value": "C:\data",
"Overrides": [{
"_id": "binary_stuff",
"Name": "PathDirectory",
"Value": "C:\anotherData"
}]
},
}
Und ich möchte zu löschen, die Überschreiben die Namen PathDirectory. Hier ist die Abfrage, die ich schrieb, aber es funktioniert nicht. Ich habe keine Fehler.
var query = Query.And(Query.EQ("_id", applicationId), Query.EQ("Settings.Key", "ImportDirectory"), Query.EQ("Settings.$.Overrides.Name", "PathDirectory"));
Run(database => database.Applications().Remove(query));
Vielen Dank für jede Hilfe.
John
Du musst angemeldet sein, um einen Kommentar abzugeben.
sollten Sie verwenden, $pull operation für löschen des Elements aus dem array.
var query = Query.And(Query.EQ("_id", applicationId), Query.EQ("Settings.Key", "ImportDirectory")); var update = Update.Pull("Settings.Overrides", new BsonDocument(){ { "Name", "PathDirectory" } }); database.Applications().Update(query, update);
. Beachten Sie, dass die " $ " - Zeichen fehlt in dem pull-Anweisung.