2014-06-10 3 views
1

이것은 매우 기본적인 것일 수 있지만 어떻게해야하는지 알 수 없습니다.MongoDB Query : 값 목록에서 키의 값이 어디인지 확인하십시오.

나는 key == value1 'OR'key == value2가 컬렉션에 있는지 쿼리하고 싶습니다.

이제 값 목록이 길어집니다. 그럼에도 불구하고

db.collection.find({ 
    "$or": [{ 
    "key": "value1" 
    }, { 
    "key": "value2" 
    }] 
}); 

이 작동하지만 값 목록을 전달하고 싶습니다.

MongoDB에서 사용할 수있는 구문이 있습니까? 몽고이도를 사용하면 몽고이트에 그러한 것이 존재한다면 위대 할 것입니다.

답변

3

당신은 논리와 동등한 $in 연산자를 원하는 것 :

이 효과적으로 일치 같은 필드에 지정된 값의 임의의 $or입니다
db.collection.find({ "key": { "$in": [ "value1", "value2" ] } }); 

. 같은 필드 또는 다른 필드와 다른 조건을 비교할 때 연산자가 $or이면됩니다. 그러나 평등 일치의 경우 이는 속기입니다.

Class.collection.find({ "key": { "$in": [ "value1", "value2" ] } }); 
+0

루비에 콜론을 사용할 수 없습니다 ... 그래서'톰 = 장치 :

Mongoid으로 당신은 누구의 접근 일 "수집"될 수있는 오토바이 층으로 다이빙하여 동일한 구문을 사용할 수 있습니다. collection.find ({ "device_id"=> { "in"=> sue}})' – dman