【发布时间】:2025-11-22 12:10:02
【问题描述】:
我有一个这样的文件:
{
"File" : "xxxxxxx.txt",
"Content" : [
{ "tag" : "Book",
"name" : "TestBook1",
"value" : "xxx"
},
{ "tag" : "Dept",
"name" : "TestDept1",
"value" : "yyy"
},
{ "tag" : "Employee",
"name" : "TestEmployee1",
"value" : "zzz"
}]
}
使用以下代码
var subFilter = Builders<BsonDocument>.Filter.Eq("tag", "Dept");
var filter = Builders<BsonDocument>.Filter.ElemMatch("Content", subFilter);
var result =
collection.Find(filter)
.Project(Builders<BsonDocument>.Projection.Exclude("_id").Include("Content.$"))
.ToList();
我可以得到
{
"tag" : "Dept",
"name" : "TestDept1",
"value" : "yyy"
}
如果我还需要对File 字段进行过滤,我该怎么办?
所以我的查询是这样的:
If File = "xxxxxx.txt" and Content.tag = "Dept"
【问题讨论】:
-
试试这个。 var andFilter = subFilter & filter var result = collection.Find(andFilter) .Project(Builders
.Projection.Exclude("_id").Include("Content.$")) .ToList(); -
什么驱动版本?
标签: c# mongodb mongodb-query