[MONGODB] 내가 어떻게하여 MongoDB에서 배열의 상단에 값을 추가하는 방법은 무엇입니까?
MONGODB내가 어떻게하여 MongoDB에서 배열의 상단에 값을 추가하는 방법은 무엇입니까?
내가 어떻게하여 MongoDB에서 배열의 상단에 값을 추가하는 방법은 무엇입니까?
난 내 몽고 컬렉션에서이 문서가 있다고 가정 :
{ "colors" : [ "red", "green", "blue" ] }
내가 어떻게 목록의 전면에 "노란색"추가합니까?
때 내가 할 :
{$push:{colors:"yellow"}}
나는이를 얻을 것입니다 :
{ "colors" : [ "red", "green", "blue", "yellow" ] }
나는이 원하는 :
{ "colors" : [ "yellow", "red", "green", "blue"] }
사전에 감사합니다!
해결법
-
==============================
1.마지막에 "푸시"인서트 반면 어레이의 앞에 "취소]"데이터를 삽입 ... 예를 들면 자바 스크립트 :
마지막에 "푸시"인서트 반면 어레이의 앞에 "취소]"데이터를 삽입 ... 예를 들면 자바 스크립트 :
> a = ['red','green','blue'] [ "red", "green", "blue" ] > a.unshift("yellow") 4 > a [ "yellow", "red", "green", "blue" ]
그러나 불행하게도이 원자 동작과 몽고의 API를 지원하지 않습니다 :
http://www.mongodb.org/display/DOCS/Updating
그냥 "푸시"를 지원합니다
배열은 얼마나 큰?
당신은 에테르 몽고의 배열은 항상 역에 저장, 사용 푸시되어 있다고 가정 수, 또는 당신은 배열을-읽어 취소]로 수정 한 다음 (원자 생각하지 않을 것이다) 다시 저장할 수
-
==============================
2.이 새로운 사람을 위해 사용될 수 MongoDB가 2.6+ 지원 $ 위치 작업자는 원하는 효과를 달성했다. 운영자 수단의 일을 원자 적으로 수행 할 수있는 $ 위치 - 이점은 여기에 당신이 당신의 전체 문서의 배열을 반환 로컬과 저장을 업데이트 할 필요가 없다는 것.
이 새로운 사람을 위해 사용될 수 MongoDB가 2.6+ 지원 $ 위치 작업자는 원하는 효과를 달성했다. 운영자 수단의 일을 원자 적으로 수행 할 수있는 $ 위치 - 이점은 여기에 당신이 당신의 전체 문서의 배열을 반환 로컬과 저장을 업데이트 할 필요가 없다는 것.
당신은 $ 각과 함께 사용합니다 :
$push: { colors: { $each: ['yellow'], $position: 0 } }
from https://stackoverflow.com/questions/7936019/how-do-i-add-a-value-to-the-top-of-an-array-in-mongodb by cc-by-sa and MIT license
'MONGODB' 카테고리의 다른 글
[MONGODB] 산화 마그네슘 이동 서버에 너무 많은 열려있는 파일 (0) | 2019.12.26 |
---|---|
[MONGODB] 어떻게 몽구스 문서 내에서 자유로운 형태의 JSON 데이터를 수 있도록? (0) | 2019.12.26 |
[MONGODB] MongoDB를 - 월별로 그룹 (0) | 2019.12.26 |
[MONGODB] 창에 MongoDB를 시작하는 방법 (0) | 2019.12.25 |
[MONGODB] 전 세계적으로 속성없이 클래스에 JsonConverter를 사용 (0) | 2019.12.25 |