【发布时间】:2017-06-27 04:10:34
【问题描述】:
我的收藏中有以下文档:
{
"Target_Year" : 2017,
"Target_Month" : 6,
"Performance" : [
{
"Report_Day" : 1,
"SM_Name" : "RACHEL",
"Total" : [{"SM": "A"},
{"SM": "B"}
]
},
]
}
我的代码
var builder = Builders<BsonDocument>.Filter;
var filterMain = builder.Eq("Target_Year", "2017") & builder.Eq("Target_Month", "6");
var filterPerf = builder.Eq("Report_Day", "1");
mongoDB.SuperiorPerformance.FindOneAndUpdate(filterMain, Builders<BsonDocument>.Update.PullFilter("Performance", filterPerf));
如何将我的代码修改为仅从 Total 中删除 {"SM": "A"}?
【问题讨论】:
-
删除 {"SM": "A"} 后更新总计
-
您能进一步详细说明吗?我无法得到它。
-
var filterPerf = builder.Eq("Report_Day", "1"), 像这样更新性能 "Performance" : [ { "Report_Day" : 1, "SM_Name" : "RACHEL", "Total " : [ {"SM": "B"} ] }, ],在 c# List 中表示,删除 Item。
-
这个答案是否符合您的要求
-
@VijayRaheja 您的 cmets 没有解决问题,但给出的答案可以解决。这里需要两件事来实现
$pull。 1. 您需要包含一些内容以匹配查询中的“外部”数组元素。 2. 构造$pull语句需要位置$运算符来表示匹配的索引,然后需要指向正确的字段以实际上“拉”出。它不是 C# 列表,而是集合中的 MongoDB 文档。
标签: c# mongodb mongodb-query