Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongodb(C#驱动程序)中的动态查询将动态条件与AND或or连接起来-如何?_C#_Mongodb_Mongodb .net Driver - Fatal编程技术网

Mongodb(C#驱动程序)中的动态查询将动态条件与AND或or连接起来-如何?

Mongodb(C#驱动程序)中的动态查询将动态条件与AND或or连接起来-如何?,c#,mongodb,mongodb-.net-driver,C#,Mongodb,Mongodb .net Driver,mongodb新成员 C#MongoDb.驱动程序版本2.2.3 我需要根据用户输入动态构建查询(例如,他们希望搜索哪些数据字段以及每个字段的值)。查询需要考虑运算符和/或。例如,在SQL中,此查询如下所示: Select * from products where (Brand='Gucci' AND Category='Bags') OR (Brand='Nike' AND Category='Clothing') 如何使用CSharp驱动程序在Mongodb中实现这一点 到目前为止,我已

mongodb新成员

C#MongoDb.驱动程序版本2.2.3

我需要根据用户输入动态构建查询(例如,他们希望搜索哪些数据字段以及每个字段的值)。查询需要考虑运算符和/或。例如,在SQL中,此查询如下所示:

Select * from products where (Brand='Gucci' AND Category='Bags') OR (Brand='Nike' AND Category='Clothing')
如何使用CSharp驱动程序在Mongodb中实现这一点

到目前为止,我已经通过Builder对象进行了播放和测试:

 var filter =
            Builders<Product>.Filter.Eq("Brand", "Gucci")
            & Builders<Product>.Filter.Eq("Category", "Bags");
             var products = productRepository.Collection.Find(filter).ToList();
var过滤器=
Builders.Filter.Eq(“品牌”、“古驰”)
&建筑商.Filter.Eq(“类别”、“袋”);
var products=productRepository.Collection.Find(filter.ToList();
但不确定如何添加语句的或部分

感谢您的帮助。

您可以使用| for或

var builder=Builders.Filter;
var query=builder.Eq(“品牌”、“古驰”)和builder.Eq(“类别”、“箱包”)
|builder.Eq(“品牌”、“D&G”)和builder.Eq(“类别”、“配件”);
var products=productRepository.Collection.Find(query.ToList();
您可以将|用于或

var builder=Builders.Filter;
var query=builder.Eq(“品牌”、“古驰”)和builder.Eq(“类别”、“箱包”)
|builder.Eq(“品牌”、“D&G”)和builder.Eq(“类别”、“配件”);
var products=productRepository.Collection.Find(query.ToList();
或 你甚至可以用这种方式

        var builder = Builders<Product>.Filter;
        var filter1 = builder.Eq("Brand", "Gucci") & builder.Eq("Category", "Bags");
         var filter2 =  builder.Eq("Brand", "D&G") & builder.Eq("Category", "Accessory");
         var query = builder.Or(filter1, filter2);

        var products = productRepository.Collection.Find(query).ToList();
var builder=Builders.Filter;
var filter1=builder.Eq(“品牌”、“古驰”)和builder.Eq(“类别”、“箱包”);
var filter2=builder.Eq(“品牌”、“D&G”)和builder.Eq(“类别”、“附件”);
var query=builder.Or(filter1,filter2);
var products=productRepository.Collection.Find(query.ToList();
或 你甚至可以用这种方式

        var builder = Builders<Product>.Filter;
        var filter1 = builder.Eq("Brand", "Gucci") & builder.Eq("Category", "Bags");
         var filter2 =  builder.Eq("Brand", "D&G") & builder.Eq("Category", "Accessory");
         var query = builder.Or(filter1, filter2);

        var products = productRepository.Collection.Find(query).ToList();
var builder=Builders.Filter;
var filter1=builder.Eq(“品牌”、“古驰”)和builder.Eq(“类别”、“箱包”);
var filter2=builder.Eq(“品牌”、“D&G”)和builder.Eq(“类别”、“附件”);
var query=builder.Or(filter1,filter2);
var products=productRepository.Collection.Find(query.ToList();