我为MongoDB使用10gen C#驱动程序,我想从子文档中删除一个子文档.我不知道怎么做.
这是一个看起来像我的文档的例子
{
"_id": "binary_stuff",
"Name": "MyApplication",
"Settings": [
{
"_id": "binary_stuff",
"Key": "ImportDirectory",
"Value": "C:\data",
"Overrides": [{
"_id": "binary_stuff",
"Name": "PathDirectory",
"Value": "C:\anotherData"
}]
},
}
Run Code Online (Sandbox Code Playgroud)
我想删除覆盖哪个名称是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));
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助.约翰
你应该使用$ pull操作从数组中删除项目.
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);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5712 次 |
| 最近记录: |