[MONGODB] 어레이의 길이만큼 몽고 오더
MONGODB어레이의 길이만큼 몽고 오더
나는이 같은 몽고 문서가 있다고 가정하자 :
질문 1
{
answers:[
{content: 'answer1'},
{content: '2nd answer'}
]
}
질문 2
{
answers:[
{content: 'answer1'},
{content: '2nd answer'}
{content: 'The third answer'}
]
}
답변의 크기에 의하여 수집을 주문하는 방법이 있나요?
다른 필드를 추가하는 약간의 연구 I 톱 제안 후, 그 대답의 수를 포함 할 것이다 그것은 참고 자료로 사용하지만 그것을 할 수있는 기본 방법이 될 수있다?
해결법
-
==============================
1.난 당신이 $ 크기를 사용할 수 있습니다 생각하지만 특정 크기가 아닌 순서의 배열을 찾을 만합니다.
난 당신이 $ 크기를 사용할 수 있습니다 생각하지만 특정 크기가 아닌 순서의 배열을 찾을 만합니다.
몽고 문서에서 : http://www.mongodb.org/display/DOCS/Advanced+Queries#AdvancedQueries-%24size
아직 출시되지 않습니다 : 당신 같은 외모 아마도 비교적 쉽게 새로운 통합 프레임 워크, 편집이 작업을 수행 할 수 있습니다. http://www.mongodb.org/display/DOCS/Aggregation+Framework
지금 업데이트 집계 프레임 워크는 밖으로 ...
> db.test.aggregate([ {$unwind: "$answers"}, {$group: {_id:"$_id", answers: {$push:"$answers"}, size: {$sum:1}}}, {$sort:{size:1}}]); { "result" : [ { "_id" : ObjectId("5053b4547d820880c3469365"), "answers" : [ { "content" : "answer1" }, { "content" : "2nd answer" } ], "size" : 2 }, { "_id" : ObjectId("5053b46d7d820880c3469366"), "answers" : [ { "content" : "answer1" }, { "content" : "2nd answer" }, { "content" : "The third answer" } ], "size" : 3 } ], "ok" : 1 }
-
==============================
2.나는 이것에 대한 $ 프로젝트를 사용하고 있습니다 :
나는 이것에 대한 $ 프로젝트를 사용하고 있습니다 :
db.test.aggregate([ { $project : { answers_count: {$size: { "$ifNull": [ "$answers", [] ] } } } }, { $sort: {"answers_count":1} } ])
또한 빈 답변 문서를 포함 할 수 있습니다. 그러나 또한 (때로는 또는 장점) 단점이있다 : 수동으로 프로젝트 단계에서 필요한 모든 필드를 추가해야합니다.
-
==============================
3.당신은 $ 정렬 단계에 의해 스토어 횟수에 추가 필드를 추가 한 후 다음됩니다 MongoDB를 집계 단계 $의 addFields를 사용할 수 있습니다.
당신은 $ 정렬 단계에 의해 스토어 횟수에 추가 필드를 추가 한 후 다음됩니다 MongoDB를 집계 단계 $의 addFields를 사용할 수 있습니다.
db.test.aggregate([ { $addFields: { answers_count: {$size: { "$ifNull": [ "$answers", [] ] } } } }, { $sort: {"answers_count":1} } ])
from https://stackoverflow.com/questions/9040161/mongo-order-by-length-of-array by cc-by-sa and MIT license
'MONGODB' 카테고리의 다른 글
[MONGODB] Node.js를의 동기 MongoDB의 쿼리를 만들 수있는 올바른 방법은 무엇입니까? (0) | 2019.12.09 |
---|---|
[MONGODB] MongoDB의에 포함 된 문서를 필터링 (0) | 2019.12.09 |
[MONGODB] MongoDB를위한 기본 데이터베이스 경로는 무엇입니까? (0) | 2019.12.09 |
[MONGODB] 그것은 MongoDB를위한 RAM에 "작업 집합"에 맞게 무엇을 의미 하는가? (0) | 2019.12.09 |
[MONGODB] 때 Nodejs에서 MongoDB를 데이터베이스 연결을 닫습니다 (0) | 2019.12.09 |