[MONGODB] MongoDB의 : 통합 프레임 워크 : 필드 사이에 $ 일치
MONGODBMongoDB의 : 통합 프레임 워크 : 필드 사이에 $ 일치
나는 두 문서와 테스트 컬렉션이 있습니다 :
> db.test.find().pretty()
{ "_id" : ObjectId("510114b46c1a3a0f6e5dd7aa"), "a" : 1, "b" : 2 }
{ "_id" : ObjectId("510114c86c1a3a0f6e5dd7ab"), "a" : 3, "b" : 1 }
통합 프레임 워크로, 나는 a가 b보다 큰 경우 문서 만 싶어. $ 하였다는 인수하지 필드에서만 값을 가져 ...
> db.test.aggregate([{"$match":{"$a":{"$gt":"$b"}}}])
{ "result" : [ ], "ok" : 1 } /* don't work*/
당신은 몇 가지 아이디어를 가지고 있습니까?
미리 감사드립니다
친애하는
해결법
-
==============================
1.음, 내 말에 많은 테스트를하지 않고 당신이를 위해 $ CMP를 사용할 수 있습니다 말할 것이다 :
음, 내 말에 많은 테스트를하지 않고 당신이를 위해 $ CMP를 사용할 수 있습니다 말할 것이다 :
http://docs.mongodb.org/manual/reference/aggregation/cmp/#_S_cmp
db.test.aggregate([ {$project: { // All your other fields here cmp_value: {$cmp: ['$a', '$b']} }}, {$match: {cmp_value: {$gt: 0}}} ])
거기에 더 나은 방법이 될 수도 있지만 나는 시험 날 근처 MongoDB를 설치 없어요.
-
==============================
2.버전 3.6에 도입, 같은 문서에서 필드를 비교 쿼리 식을 구축 할 수 있습니다 $ EXPR.
버전 3.6에 도입, 같은 문서에서 필드를 비교 쿼리 식을 구축 할 수 있습니다 $ EXPR.
하나의 문서 (예 MongoDB를 문서 도구에서 직접 촬영)에서 두 필드를 비교 :
다음의 서류와 함께 MONTHLYBUDGET 모음을 고려 :
{ "_id" : 1, "category" : "food", "budget": 400, "spent": 450 } { "_id" : 2, "category" : "drinks", "budget": 100, "spent": 150 } { "_id" : 3, "category" : "clothes", "budget": 100, "spent": 50 } { "_id" : 4, "category" : "misc", "budget": 500, "spent": 300 } { "_id" : 5, "category" : "travel", "budget": 200, "spent": 650 }
다음 작업은 지출 금액이 예산을 초과하는 문서를 찾을 수 $ EXPR을 사용합니다 :
db.monthlyBudget.find( { $expr: { $gt: [ "$spent" , "$budget" ] } } )
동작은 다음과 같은 결과를 반환합니다 :
{ "_id" : 1, "category" : "food", "budget" : 400, "spent" : 450 } { "_id" : 2, "category" : "drinks", "budget" : 100, "spent" : 150 } { "_id" : 5, "category" : "travel", "budget" : 200, "spent" : 650 }
from https://stackoverflow.com/questions/14501337/mongodb-aggregation-framework-match-between-fields by cc-by-sa and MIT license
'MONGODB' 카테고리의 다른 글
[MONGODB] 어떻게 효율적으로 몽고에서의 요청에 의한 문서를 삭제하려면? (0) | 2019.12.15 |
---|---|
[MONGODB] 유성 및 섬유 / bindEnvironment ()와 함께 무슨 일이야? (0) | 2019.12.15 |
[MONGODB] 현재 값을 기준으로하여 MongoDB에 값을 업데이트 (0) | 2019.12.15 |
[MONGODB] 어떻게하여 MongoDB의 루트 레벨로 하위 문서를 평평하게하는? (0) | 2019.12.15 |
[MONGODB] 날짜의 필드에 의해 최신 MongoDB를 기록 받기 (0) | 2019.12.15 |