【问题标题】:Filter In Method过滤方法
【发布时间】:2016-07-09 21:19:26
【问题描述】:

如何使用 Filter.In 方法?

我有这样的文件:

{ 
  "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");

我可以得到

{   
    "tag" : "Dept",
    "name" : "TestDept1",
    "value" : "yyy"
}

假设我有很多不同的标签,我想找到像“Book, Dept, Employee, xxxxx, yyyyy, zzzzz.....”这样的字符串中的任何标签

我尝试使用Filter.In() 方法,但不太清楚如何传入所需的参数。

【问题讨论】:

    标签: c# mongodb mongodb-query


    【解决方案1】:

    您需要创建一个IEnumerable(带有Contains 方法的东西)。

    因此,如果您的标签用逗号分隔,您可以:

    var tags = tagsString.Split(new char[] { ',' }).Select(p => p.Trim());
    var results = await collection.Find(p => tags.Contains(p.Tag)).ToListAsync();
    

    http://mongodb.github.io/mongo-csharp-driver/2.0/reference/driver/expressions/

    【讨论】:

    • Josh K,谢谢,这正是我要找的。​​span>
    猜你喜欢
    • 2021-05-28
    • 1970-01-01
    • 1970-01-01
    • 2020-02-07
    • 1970-01-01
    • 1970-01-01
    • 2023-01-12
    • 2012-01-10
    • 2018-03-26
    相关资源
    最近更新 更多