[MONGODB] 당신은 $ 푸시 앞에 추가하는 대신이 추가 인을 몽고 수 있습니까?
MONGODB당신은 $ 푸시 앞에 추가하는 대신이 추가 인을 몽고 수 있습니까?
나는 내가 몽고의 $ 푸시를 수행 할 때 끝에 추가보다는 내 세트의 시작 부분에 푸시 추가를하고 싶습니다.
그것은 지난보다 먼저 아니라 같은 요소를 추가하는 원자 푸시 업데이트를 할 수 있습니까?
2014 업데이트 : 당신이 할 수있는 예.
해결법
-
==============================
1.MongoDB의의 v2.5.3로, 당신은 당신이 값을 삽입 할 때의 배열의 위치를 지정하여 $ 푸시 쿼리의 일환으로 $로 각 연산자를 함께 포함 할 수 있다는 새로운 $ 위치 연산자가있다.
MongoDB의의 v2.5.3로, 당신은 당신이 값을 삽입 할 때의 배열의 위치를 지정하여 $ 푸시 쿼리의 일환으로 $로 각 연산자를 함께 포함 할 수 있다는 새로운 $ 위치 연산자가있다.
여기서 (2)의 배열 인덱스의 요소 (20, 30)을 추가 할 수있는 문서 페이지의 예이다 :
db.students.update( { _id: 1 }, { $push: { scores: { $each: [ 20, 30 ], $position: 2 } } } )
참조 : http://docs.mongodb.org/master/reference/operator/update/position/#up._S_position
-
==============================
2.몽고 버전 2.2에서 테스트 앞에 추가를위한 $ 세트, 부정적인 인덱스를 사용합니다 :
몽고 버전 2.2에서 테스트 앞에 추가를위한 $ 세트, 부정적인 인덱스를 사용합니다 :
> db.test.insert({'array': [4, 5, 6]}) > db.test.find() { "_id" : ObjectId("513ad0f8afdfe1e6736e49eb"), "array" : [ 4, 5, 6 ] } //prepend 3 > db.test.update({"_id" : ObjectId("513ad0f8afdfe1e6736e49eb")}, {'$set': {'array.-1': 3}}) > db.test.find() { "_id" : ObjectId("513ad0f8afdfe1e6736e49eb"), "array" : [ 3, 4, 5, 6 ] } //prepend 2 > db.test.update({"_id" : ObjectId("513ad0f8afdfe1e6736e49eb")}, {'$set': {'array.-1': 2}}) > db.test.find() { "_id" : ObjectId("513ad0f8afdfe1e6736e49eb"), "array" : [ 2, 3, 4, 5, 6 ] } //prepend 1 > db.test.update({"_id" : ObjectId("513ad0f8afdfe1e6736e49eb")}, {'$set': {'array.-1': 1}}) > db.test.find() { "_id" : ObjectId("513ad0f8afdfe1e6736e49eb"), "array" : [ 1, 2, 3, 4, 5, 6 ] }
-
==============================
3.비슷한 질문이 몇 일 전에 질문을 받았다. 불행하게도, 짧은 대답은 "아니오"하지만,이 기능에 대한 개방 요구가있다. https://jira.mongodb.org/browse/SERVER-2191 - "배열의 전면에 $ 푸시 ()"
비슷한 질문이 몇 일 전에 질문을 받았다. 불행하게도, 짧은 대답은 "아니오"하지만,이 기능에 대한 개방 요구가있다. https://jira.mongodb.org/browse/SERVER-2191 - "배열의 전면에 $ 푸시 ()"
좀 더 많은 정보와 다른 스레드에 가능한 주위에 일이있다 "스택으로 사용 MongoDB를 배열"- 스택으로 사용 MongoDB의 배열
희망 위의 유용하고 도움 당신은 허용 해결 방법 찾을 수 있습니다.
from https://stackoverflow.com/questions/10131957/can-you-have-mongo-push-prepend-instead-of-append by cc-by-sa and MIT license
'MONGODB' 카테고리의 다른 글
[MONGODB] MongoDB를 C #을 드라이버 2.0 - 업데이트 문서 (0) | 2019.12.18 |
---|---|
[MONGODB] 통합 프레임 워크에서 객체를 언 와인드 $ (0) | 2019.12.18 |
[MONGODB] 어떻게하여 MongoDB의 자동 증가 차 ID를 구현합니까? (0) | 2019.12.18 |
[MONGODB] 아틀라스에 몽구스를 연결하는 데 실패 (0) | 2019.12.18 |
[MONGODB] Node.js를, 몽고의 발견 및 반환 데이터 (0) | 2019.12.18 |