Mongodb(C#驱动程序)中的动态查询将动态条件与AND或or连接起来-如何?
mongodb新成员 C#MongoDb.驱动程序版本2.2.3 我需要根据用户输入动态构建查询(例如,他们希望搜索哪些数据字段以及每个字段的值)。查询需要考虑运算符和/或。例如,在SQL中,此查询如下所示: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中实现这一点 到目前为止,我已
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();