2016-06-05 1 views
0

새로운 및동적 쿼리를 Mongodb (C# Driver)에서 AND 또는 OR로 결합 - 어떻게?

C# MongoDb.Driver 버전 2.2.3

나는 동적으로 사용자 입력을 기반으로 쿼리를 구축하기위한 요구 사항이 (예를 들어, 어떤 데이터 필드가에 검색하고자하는 값을 MongoDB를합니다 각). 쿼리는 연산자 및/또는 연산자를 허용해야합니다. 예를 들어, SQL에 같이 볼 것이 쿼리는 다음과 같습니다

Select * from products where (Brand='Gucci' AND Category='Bags') OR (Brand='Nike' AND Category='Clothing') 

어떻게 CSHARP 드라이버를 사용하여 MongoDB에이를 수 있습니까?

은 지금까지 내가 빌더 객체를 통해 재생 및 테스트 한 :

var filter = 
      Builders<Product>.Filter.Eq("Brand", "Gucci") 
      & Builders<Product>.Filter.Eq("Category", "Bags"); 
      var products = productRepository.Collection.Find(filter).ToList(); 

하지만 확인 방법 문의 또는 일부를 추가?

감사합니다.

답변

0

| 또는 Documentation link

var builder = Builders<Product>.Filter; 
var query = builder.Eq("Brand", "Gucci") & builder.Eq("Category", "Bags") 
     | builder.Eq("Brand", "D&G") & builder.Eq("Category", "Accessory"); 
var products = productRepository.Collection.Find(query).ToList(); 
0

또는 당신도이 방법을 사용할 수 있습니다.

 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();