【问题标题】:How To Query A List Of Strings Using C#, Linq, and Mongo如何使用 C#、Linq 和 Mongo 查询字符串列表
【发布时间】:2017-08-15 19:09:26
【问题描述】:

目前,我正在尝试使用 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 驱动程序使用字符串列表作为参数进行查询的正确方向?

【问题讨论】:

    标签: c# mongodb linq


    【解决方案1】:
    collection.AsQueryable<ApplicationUser>()
    .Where(user => 
        user.Skills
        .Select(s => s.Name)
        .Intersect(skills)
        .Any())
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多