2015-01-29 6 views
0

과 동일한 mongodb agg $match은 무엇입니까?

SELECT a FROM DB_A WHERE (t > 21 AND a.t < 60) OR s = 'value' 

이 mongodb 쿼리가 작동하지 않습니다. 어떤 도움이 필요합니까?

db.collection_a.aggregate([ 
    { '$match': { '$and': [ {'t': {'$gte': '21'}}, {'t': {'$lte': '60'}} ] 
    //, '$or': [ {'s': 'value'} ] 
      } 
      ,{ '$or': [ {'s': 'value'} ]} 
    } 

]); 
+0

원래 질문에서'$ project' 단계를 제거한 이유는 무엇입니까? – BatScream

+0

잘 특별하지 않습니다. 불필요한 줄을 그냥 지우십시오. – aung

+0

불필요한 줄을 제거하는 것이 아니라,이 경우'$ and' 조건은 상자 대괄호 일 필요가 없으며 조건은'$ and' 연산자를 사용하여 암묵적으로 처리됩니다. – BatScream

답변

3

syntax이 완전히 엉망입니다. 그것은이어야합니다 :

db.a.aggregate([ 
{$match:{$or:[{"t":{$lte:60,$gte:21}}, 
       {"s":"value"}]}}, 
{$project:{"test_type": 1, "distance": 1}} 
])