[MONGODB] MongoDB를 구별 어디 동일한 쿼리에서?
MONGODBMongoDB를 구별 어디 동일한 쿼리에서?
하자 내가 다음의 서류를 말한다
Article { Comment: embedMany }
Comment { Reply: embedMany }
Reply { email: string, ip: string }
내가 쿼리를 만들고 싶어 그 선택 별개의 Reply.ip 곳 Reply.email = XXX
이런 식으로 뭔가 만 작동하지 않습니다 ..
db.Article.find("Comment.Reply.email" : "xxx").distinct("Comment.Reply.ip")
JSON 수출 :
{
"_id":{
"$oid":"4e71be36c6eed629c61cea2c"
},
"name":"test",
"Comment":[
{
"name":"comment test",
"Reply":[
{
"ip":"192.168.2.1",
"email":"yyy"
},
{
"ip":"127.0.0.1",
"email":"zzz"
}
]
},
{
"name":"comment 2 test",
"Reply":[
{
"ip":"128.168.1.1",
"email":"xxx"
},
{
"ip":"192.168.1.1",
"email":"xxx"
}
]
}
]
}
내가 실행 db.Article.distinct를 ( "Comment.Reply.ip", { "Comment.Reply.email": "XXX"})
내가 기대 : [ "128.168.1.1", "192.168.1.1"]
내가 얻을 : [ "127.0.0.1", "128.168.1.1", "192.168.1.1", "192.168.2.1"]
해결법
-
==============================
1.조건 몽고의 고유 쿼리는 다음과 같이 작동
조건 몽고의 고유 쿼리는 다음과 같이 작동
db.Article.distinct("Comment.Reply.ip",{"Comment.Reply.email" : "xxx"})
되지 않은 다른 방법으로 주위
편집하다:
나는 / 필터 하위 문서에 맞게 inorder를 우리는 다음과 같이 $ elemMatch 연산자를 사용합니다, 지금 문제를 이해
db.Article.distinct("Comment.Reply.ip",{Comment: {$elemMatch: {"Reply.email" : "xxx"}}})
하위 문서 (귀하의 경우, 당신은 응답의 배열을) 하위 배열을 포함하는 경우하지만이 작동하지 않습니다. 열린 부분 배열에있는 기존 문제 $ elemMatch이있다. 그리고 그 몽고 2.1 예정입니다. 당신은 더 많은 정보에 대한 링크를 확인하실 수 있습니다
-
==============================
2.어쩌면 당신이 시도 할 수
어쩌면 당신이 시도 할 수
db.Article.aggregate([ {$unwind: "$Comment"}, {$unwind: "$Comment.Reply"}, {$match: {"Comment.Reply.email": "xxx"}}, {$group: {_id: "$Comment.Reply.ip"}} ])
실시 예의 결과는 다음과 같아야
/* 1 */ { "_id" : "192.168.1.1" } /* 2 */ { "_id" : "128.168.1.1" }
-
==============================
3.
distinctdates=db.dailyreport_detailed.find( {'uid':personemail,'month':searchdate2,'year':searchdate1} ) .distinct('date_only')
발견 조건에 따라 검색하고 어디 끝에 별개의 고유 날짜를 줄 것이다.
from https://stackoverflow.com/questions/7419986/mongodb-distinct-where-in-same-query by cc-by-sa and MIT license
'MONGODB' 카테고리의 다른 글
[MONGODB] MongoDB의에서 $ 조회 여러 컬렉션에 참여하는 방법 (0) | 2020.02.22 |
---|---|
[MONGODB] MongoDB의의 CONCAT의 INT 및 문자열 (0) | 2020.02.19 |
[MONGODB] MongoDB를 복합 기본 키 (0) | 2020.02.06 |
[MONGODB] $ 슬라이스 연산자를 사용하여 배열의 마지막 요소를 얻을 수 있습니다 (0) | 2020.01.25 |
[MONGODB] MongoDB의 쉘에서 데이터베이스를 작성하지 (0) | 2020.01.18 |