[MONGODB] MongoDB의 배열에서의 n 번째 원소를 받기
MONGODBMongoDB의 배열에서의 n 번째 원소를 받기
MongoDB의 내 문서의 일부로서 나는 객체의 배열을 저장하고있다. 어떻게 예를 들어 배열의 4 요소를 조회 할 수 있습니다? 내가 원하지 않는 있도록 전체 배열 밖으로, 단지 4 요소를 얻을.
해결법
-
==============================
1.$ 슬라이스를 사용합니다.
$ 슬라이스를 사용합니다.
db.foo.find({ bar : "xyz" } , { my_array : { $slice : [n , 1] } } )
푸 컬렉션에있는 모든 문서들의 어레이 "my_array 배열"의 n 번째 원소를 검색하는 곳 바 = "XYZ".
MongoDB를 문서의 일부 다른 예 :
db.posts.find({}, {comments:{$slice: 5}}) // first 5 comments db.posts.find({}, {comments:{$slice: -5}}) // last 5 comments db.posts.find({}, {comments:{$slice: [20, 10]}}) // skip 20, limit 10 db.posts.find({}, {comments:{$slice: [-20, 10]}}) // 20 from end, limit 10
http://www.mongodb.org/display/DOCS/Retrieving+a+Subset+of+Fields : 당신은 여기에 읽을 수있는
-
==============================
2.당신은 지정된 배열 인덱스의 요소를 반환하여 MongoDB 3.2의 새로운는 $ arrayElemAt 연산자를 사용할 수 있습니다.
당신은 지정된 배열 인덱스의 요소를 반환하여 MongoDB 3.2의 새로운는 $ arrayElemAt 연산자를 사용할 수 있습니다.
데모:
바구니라는 이름의 컬렉션 문서를 포함하는 다음과 같이 :
{ "_id" : ObjectId("578f326f6db61a299a383c5a"), "fruits" : [ "apple", "mango", "banana", "apricot", "cherry" ] }
다음은 "과일"배열 인덱스 -2 (제 소자)의 요소를 리턴 질의.
db.baskets.aggregate( [ { "$project": { "matched": { "$arrayElemAt": [ "$fruits", 1 ] } } } ] )
이는 생산
{ "_id" : ObjectId("578f326f6db61a299a383c5a"), "matched" : "mango" }
그리고 배열의 마지막 요소 앞에있는 요소를 쿼리 다음; 인덱스에 따라서 소자 -2
db.baskets.aggregate( [ { "$project": { "matched": { "$arrayElemAt": [ "$fruits", -2 ] } } } ] )
이는 수율 :
{ "_id" : ObjectId("578f326f6db61a299a383c5a"), "matched" : "apricot" }
-
==============================
3.이 작업을 수행하는 또 다른 방법은 업데이트 배열 구문을 사용하는 것입니다. 여기서, contribs.1 값 ALGOL 58 갖도록 기여 어레이의 두 번째 요소를 설정 (갱신 구문 매뉴얼 페이지에서 발췌)
이 작업을 수행하는 또 다른 방법은 업데이트 배열 구문을 사용하는 것입니다. 여기서, contribs.1 값 ALGOL 58 갖도록 기여 어레이의 두 번째 요소를 설정 (갱신 구문 매뉴얼 페이지에서 발췌)
db.bios.update( { _id: 1 }, { $set: { 'contribs.1': 'ALGOL 58' } } )
from https://stackoverflow.com/questions/7223273/get-n-th-element-of-an-array-in-mongodb by cc-by-sa and MIT license
'MONGODB' 카테고리의 다른 글
[MONGODB] 유성 : 예기치 않은 몽고 종료 코드 (100) (0) | 2019.12.11 |
---|---|
[MONGODB] 몽구스 스키마 모델에 등록되지 않은 (0) | 2019.12.11 |
[MONGODB] 어떻게 MongoDB를 수집 내부 문서에 포함 된 특정을 얻으려면? [복제] (0) | 2019.12.11 |
[MONGODB] 참조 된 모델의 필드에 의해 모델에 중첩 된 쿼리를 몽구스 (0) | 2019.12.11 |
[MONGODB] MongoDB의 많은 관계로 많은을 구성하는 방법 (0) | 2019.12.11 |