![](/img/trans.png)
[英]MongoDB Driver C#, Search by nested property using filter definition
[英]How to search in mongodb nested array using c# driver
有誰知道使用c#驅動程序在mongodb中搜索嵌套數組嗎?
例如:我有一個Person類型的文檔列表。 Person實體的示例如下
{
"Name": "HumanName",
"Occupation": "Student",
"Class": [
{
"ClassType": "Math",
"Professors": [
{
"Name": "Jimmy"
},
{
"Name": "Smith"
}
]
},
{
"ClassType": "English",
"Professors": [
{
"Name": "John"
}
]
}
]
}
我該如何寫一個查詢,將職業學生,數學班和史密斯教授的所有文檔都帶給我?
我嘗試使用elemMatch匹配以下內容,但它不起作用
var builder = Builders<Person>.Filter;
var filters = builder.Eq(x => x.Occupation, "Student");
filters = filters & builder.ElemMatch(x => x.Class, x=> x.ClassType =="Math");
filters = filters & builder.ElemMatch(x => x.Class[-1].Professors, x=> x.Name =="Smith");
var result = await Mongo.Persons.Find(filters).SingleOrDefaultAsync();
var collection = database.GetCollection<Person>("Person");
var list = collection.AsQueryable()
.Where(x => x.Ocupation == "Student"
&& x.Class.Any(y => y.ClassType == "Math"
&& y.Proffessors.Any(z => z.Name == "Smith")))
.ToList();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.