我为 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"
}]
},
}
我想删除名称为 PathDirectory 的 Override。这是我写的查询,但它不起作用。我没有错误。
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));
感谢您的帮助。 约翰
最佳答案
您应该使用 $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);
关于c# - MongoDB 从子文档中删除子文档文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6584037/