【问题标题】:Like query in C# Mongo DB像 C# Mongodb 中的查询
【发布时间】:2021-01-08 14:54:43
【问题描述】:

在我的项目中使用了mongodb,使用linq连接mongodb。

这是创建的过滤查询

builder.Where(x => x.OldBatchDesc.Contains(input.oldBatchDescription));

Input 是模型对象,oldBatchDescription 是属性名称。 OldBatchDesc 是列名。

在当前场景中,假设用户在文本框中输入值 ab,该值设置为input.oldBatchDescription,并且根据上述查询,它将检查OldBatchDesc 列中哪一行将包含ab。例如,如果OldBatchDesc xyz、xyabz、def、defab、abcab 中有 5 行,那么它将返回 xyabz, defab, abcab,因为这些包含 ab

现在的要求是用户将在文本框中输入逗号分隔值,例如ab,xy,ef,我想检查OldBatchDesc 列行是否包含用户输入的此值 ab 或 xy 或 ef。

所以在这种情况下输出将是 xyz,xyabz,def,defab,abcab。

如何使用 C# 构建一个 mongodb 过滤器查询?

我所做的是创建一个字符串数组并用逗号分割它

string[] desc = input.oldBatchDescription(',')

但是我应该如何传递这个数组来过滤查询,或者有什么方法可以传递这个逗号分隔的值来过滤以获得所需的输出。

builder.Where(x => x.OldBatchDesc.Contains(input.oldBatchDescription));

请指导我。

【问题讨论】:

    标签: c# mongodb linq aggregation-framework mongodb-.net-driver


    【解决方案1】:

    是的,拆分会很好。然后您可以过滤每个值是否存在于文档字段中。

    string[] desc = input.oldBatchDescription.Split(',');
    builder.Where(x => desc.Any(d => x.Contains(d));
    

    尝试并告诉我们进展如何。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-06-06
      • 2013-12-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多