J'utilise 10gen C# pilote pour MongoDB et je voudrais supprimer un sous-document d'un sous-document. Je ne sais pas comment le faire.MongoDB supprimer un document de sous-document à partir d'un sous-document
Voici un exemple de ce qui ressemble à mon document
{
"_id": "binary_stuff",
"Name": "MyApplication",
"Settings": [
{
"_id": "binary_stuff",
"Key": "ImportDirectory",
"Value": "C:\data",
"Overrides": [{
"_id": "binary_stuff",
"Name": "PathDirectory",
"Value": "C:\anotherData"
}]
},
}
Et je veux supprimer la Override dont le nom est PathDirectory. Voici la requête que j'ai écrite, mais cela ne fonctionne pas. Je n'ai pas d'erreur.
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));
Merci pour toute aide. John
J'ai essayé avec cette requête avec votre code: requête var = Query.And (Query.EQ ("_ id", applicationId), Query.EQ ("Settings.Key", "ImportDirectory")); mais il ne fait rien – Gui
J'ai édité l'exemple de code –
Cette fois, le remplacement n'est toujours pas supprimé, mais à la place j'ai un autre sous-paramètre Settings [0]: {} au niveau des paramètres. Regardez ce document: { "_id": "binary_stuff", "Nom": "MyApplication", "Paramètres": [ { "_id": "binary_stuff", "clé": "ImportDirectory" , "Valeur": "C: \ data", "Dérogations": [{ "_id": "binary_stuff", "Nom": "PathDirectory", "Valeur": "C: \ anotherData" }], "Paramètres [0]": {}, }, } – Gui