Linux에서 MongoDB 2.4.4-pre-를 실행합니다. 각 요소에 "num"이라는 필드가있는 테이블이 있습니다. 이 필드에는 양의 정수가 포함됩니다. "num"필드에 숫자에 가장 가까운 짝수가 포함되어있는 요소를 찾으려면 내 쿼리를 어떻게해야합니까? 검사하고 싶습니다.MongoDB에서 가장 가까운 짝수를 찾으십시오.
0
A
답변
2
링크 된 related question은 "가장 가까운"값을 찾는 두 가지 접근법을 설명합니다. 하나는 주어진 수보다 더 가까운 가장 가까운 값을 찾고 가장 가까운 더 낮은 값을 찾는 두 개의 쿼리를 실행하는 것입니다. 다른 방법은 지형 공간 인덱스를 사용하는 것입니다 (스키마 변경이 필요합니다).
db.collection.find ({ "num" : { "$mod" : [ 2, 0 ] } })
가 조회하는 방법입니다 :
당신이 두 개의 쿼리를 쿼리에해야 할 유일한 수정 괜찮다면 당신이 단지 짝수을 고려해야 할 제약 조건을 추가하는 것입니다 짝수 인 숫자 만 입력하십시오 ($mod
operator 문서 참조).
당신의 두 쿼리
는 될 :a=db.collection.find({"num":{"$mod":[2,0], $gte:INPUTNUM }}).sort({"num":1}).limit(-1)
b=db.collection.find({"num":{"$mod":[2,0], $lte:INPUTNUM }}).sort({"num":-1}).limit(-1)
당신이 INPUTNUM 가장 근접한 사람 B, A에서 유지 곳.
+0
num의 범위 등에 관한 몇 가지 추가 정보를 알고있는 경우에만 최적화 할 수 있습니다. –
근처에는 어떤 범위가 고려 될까요? – Sammaye
범위 없음. 나는 가장 가까운 것을 찾아야 만한다. – JustLogin
참조 : http://stackoverflow.com/questions/13275491/mongodb-find-document-with-closest-integer-value –