[MONGODB] MongoDB의 배열에서의 여러 요소를 업데이트 [중복]
MONGODBMongoDB의 배열에서의 여러 요소를 업데이트 [중복]
나는 MongoDB를 내 주식 모음에 다음과 같은 문서가 있습니다.
{ _id: 'xRMuRBhqRLgASyQyW',
History:
[ { orderId: '12032017001877',
status: 'COMPLETED',
},
{ orderId: '22122017002450',
status: 'PROCESSED',
},
{ orderId: '22122018002450',
status: 'DEPOSIT',
}
]
}
나는 주식 컬렉션에서 모든 문서를 반복 원하는 필드 플래그를 추가 : 사실 상태가 '처리 되었음'가 아닌 경우.
해결법
-
==============================
1.당신은 스크립트를 사용하여 얻을 수 있습니다.
당신은 스크립트를 사용하여 얻을 수 있습니다.
db.stocks.find().forEach(function(e){var modified=false;e.History.forEach(function(o){if(o.status!="PROCESSED"){o.flag=true;modified=true}});if(modified){db.stocks.save(e)}});
-
==============================
2.당신은 배열의 각 요소를 업데이트 할 모든 $ [] 위치 연산자를 사용합니다
당신은 배열의 각 요소를 업데이트 할 모든 $ [] 위치 연산자를 사용합니다
db.collection.update( { "History": { "$elemMatch": { "status": { "$ne": "PROCESSED" } } } }, { "$set": { "History.$[].flag": false } }, { "multi": true } )
-
==============================
3.당신은 단순히 연산자를 '$'를 사용하여 작업을 수행 할 수 있습니다. 뭔가 같은 :
당신은 단순히 연산자를 '$'를 사용하여 작업을 수행 할 수 있습니다. 뭔가 같은 :
db.stocks.update( {"history.status" : { $not: "PROCESSED" } , { $set: {"history.$.flag": true }} , false , true);
-
==============================
4.내 대답은 @Anthony 매우 유사하지만, (upsert 멀티 용) 개의 추가 파라미터가 추가된다. 참고로 당신은 공식 문서를 확인할 수 있습니다.
내 대답은 @Anthony 매우 유사하지만, (upsert 멀티 용) 개의 추가 파라미터가 추가된다. 참고로 당신은 공식 문서를 확인할 수 있습니다.
db.stocks.update( { "History": { "$elemMatch": { "status": { "$ne": "PROCESSED" } } } }, { "$set": { "History.$[].flag": false }}, false, // show that if there is not any document with specified criteria , it will not create a new document. ture // according to document of mongodb if multi is true then more than one document will be updated, other wise only one document will be updated. )
from https://stackoverflow.com/questions/51206841/update-multiple-elements-in-an-array-in-mongodb by cc-by-sa and MIT license
'MONGODB' 카테고리의 다른 글
[MONGODB] 고정 표시기 컨테이너 내부 MongoDB를 연결 오류 (0) | 2019.12.26 |
---|---|
[MONGODB] CSV로 하위 문서에서 mongoexport 필드 (0) | 2019.12.26 |
[MONGODB] MongoDB의 최대 및 최소의 (0) | 2019.12.26 |
[MONGODB] oplog.rs에서 TS 필드에 인덱스가 업데이트되지 않습니다 (0) | 2019.12.26 |
[MONGODB] Google 클라우드 MongoDB를 : 외부 IP는 연결되지 (0) | 2019.12.26 |