簡體   English   中英

如何使用C#驅動程序在mongodb嵌套數組中搜索

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM