[MONGODB] MongoDB의 : 중첩 된 배열 필터링을 발견하고 findOne
MONGODBMongoDB의 : 중첩 된 배열 필터링을 발견하고 findOne
이 작은 작업은 어렵게 생각보다 밝혀졌다.
다음과 같은 매우 간단한 글 모음을 고려하십시오. 내가 삭제되지 않은 경우에만 의견과 함께 모든 게시물을 표시 할 가정하자.
즉 코멘트 배열에서 삭제 된 의견을 필터링 할 수 있습니다.
나는 포스트 당 삭제 된 댓글의 100 단위를 가지고 있기 때문에,이 서버 측을 할 수있는 방법은 무엇입니까?
컬렉션 :
{
"author": {},
"message": "This is post1",
"comments": [
{
"message": "Im number 1!!!",
"state": {
"deleted": false
}
},
{
"message": "YOU MOTHERF****R",
"state": {
"deleted": true
}
},
{
"message": "tHIS IS GREAT!",
"state": {
"deleted": false
}
},
{
"message": "I can type better than you guys",
"state": {
"deleted": false
}
}
]
},
{
"author": {},
"message": "This is post 2",
"comments": [
{
"message": "This is bulls**t",
"state": {
"deleted": true
}
},
{
"message": "YOU MOTHERF****R",
"state": {
"deleted": true
}
},
{
"message": "I hate u!",
"state": {
"deleted": true
}
},
{
"message": "I wanna have your children",
"state": {
"deleted": false
}
}
]
}
해결법
-
==============================
1.이 타고의 지옥으로 밝혀졌다 때문에 DR, 나는 TL 것이다. 나는 내가 $ 프로젝트를 시도했습니다, 나는, 나는 집계 프레임 워크를 시도했습니다, $지도를 시도했다 (또한 $$ 현재와 $$ ROOT와) $ 편집하다 해봤 $ elemMatch을 시도했습니다.
이 타고의 지옥으로 밝혀졌다 때문에 DR, 나는 TL 것이다. 나는 내가 $ 프로젝트를 시도했습니다, 나는, 나는 집계 프레임 워크를 시도했습니다, $지도를 시도했다 (또한 $$ 현재와 $$ ROOT와) $ 편집하다 해봤 $ elemMatch을 시도했습니다.
당신은 여기에 대한 모든을 읽을 수 있습니다 : https://www.devsbedevin.net/mongodb-find-findone-with-nested-array-filtering-finally/
이 솔루션은 배열을 필터링하고 그 결과에 주석 속성을 재정의 집계 프레임 워크를 사용하는 것 같다. 그것은 생각보다이 간단하다 :
db.getCollection('posts').aggregate( {$match: {"author.id": authorId}}, {$addFields : {"comments":{$filter:{ // We override the existing field! input: "$comments", as: "comment", cond: {$eq: ["$$comment.state.deleted", false]} }}}} );
결과:
{ "author": {}, "message": "This is post1", "comments": [ { "message": "Im number 1!!!", "state": { "deleted": false } }, { "message": "tHIS IS GREAT!", "state": { "deleted": false } }, { "message": "I can type better than you guys", "state": { "deleted": false } } ] }, { "author": {}, "message": "This is post 2", "comments": [ { "message": "I wanna have your children", "state": { "deleted": false } } ] }
from https://stackoverflow.com/questions/46323106/mongodb-find-and-findone-with-nested-array-filtering by cc-by-sa and MIT license
'MONGODB' 카테고리의 다른 글
[MONGODB] 봄의 데이터 일치 및 필터 중첩 배열 (0) | 2019.12.20 |
---|---|
[MONGODB] 내가 명시 적으로 밀접한 관계에 필요합니까? (0) | 2019.12.20 |
[MONGODB] 종류 및 한도 가상 채울 몽구스 (0) | 2019.12.20 |
[MONGODB] 어떻게 ++하여 MongoDB의 드라이버를 C를 사용하여 프로그램을 구축 할 수 있습니다? (0) | 2019.12.20 |
[MONGODB] MongoDB의에서 현지 시간대와 날짜 별 그룹 (0) | 2019.12.20 |