4
MongoDB用に10genのC#ドライバを使用していますが、サブ文書からサブ文書を削除したいと思います。私はそれをする方法を知らない。MongoDBサブ文書からサブ文書を削除する
は、ここに私の文書
{
"_id": "binary_stuff",
"Name": "MyApplication",
"Settings": [
{
"_id": "binary_stuff",
"Key": "ImportDirectory",
"Value": "C:\data",
"Overrides": [{
"_id": "binary_stuff",
"Name": "PathDirectory",
"Value": "C:\anotherData"
}]
},
}
どのように見えるかの例だと、私は名前がPathDirectoryあるオーバーライドを削除したいです。ここに私が書いた質問はありますが、うまくいきません。私は誤りがない。
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));
ありがとうございました。 John
私はあなたのコードで、このクエリを使用してみました:VARクエリ= Query.And(Query.EQ( "_ ID"、APPLICATIONID)、Query.EQ( "Settings.Key"、 "ImportDirectory"));しかし、何もしません – Gui
私はコード例 –
を編集しました。今回は、オーバーライドは依然として削除されていませんが、私はSettingsレベルで別のサブ文書Settings [0]:{}を持っています。 { "_id": "binary_stuff"、 "名前": "MyApplicationを"、 "設定":[ { "_id": "binary_stuff"、 "キー": "ImportDirectory" この文書を見て、 "値": "C:\データ"、 "オーバーライド":[{ "_id": "binary_stuff"、 "名前": "PathDirectory"、 "値": "C:\ anotherData" このクエリを試してみると:var query = Query.And(Query.EQ( "_ id"、applicationId)、Query.EQ( ")、 " Settings [0] ":{}、 }、 } – Gui