簡體   English   中英

如何使用C#,Linq和Mongo查詢字符串列表

[英]How To Query A List Of Strings Using C#, Linq, and Mongo

當前,我正在嘗試使用C#MongoDB驅動程序和Linq返回查詢結果。 我嘗試解析以下JSON:

{
    "_id": {
        "$oid": "598b25038dcc43a92cdb24e3"
    },    
    "Skills": [
        {
            "ID": 1,
            "Name": "test"
        },
        {
            "ID": 2,
            "Name": "test2"
        },
        {
            "ID": 3,
            "Name": "test3"
        }
    ]    
}

我嘗試編寫的函數將字符串列表作為參數。 目的是返回一個Mongo文檔列表,其中Skills數組中的一個或多個對象的名稱等於通過該列表傳遞的一個或多個字符串。

我想出了以下快速解決方案,該解決方案使用了一堆嵌入式的foreach循環,但認為這不是最好的選擇。 我想對Linq執行以下操作:

            var query =
                from a in collection.AsQueryable<ApplicationUser>()
                where a.Skills.ForEach(applicantSkill => skills.Contains(applicantSkill.Name))
                select a;
            return query;

但這顯然會引發錯誤。 有人能指出我正確的方向是使用Linq / C#Mongo驅動程序以字符串列表作為參數進行查詢嗎?

collection.AsQueryable<ApplicationUser>()
.Where(user => 
    user.Skills
    .Select(s => s.Name)
    .Intersect(skills)
    .Any())

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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