[MONGODB] 어떻게 특정 값에 MongoDB의 문서에있는 모든 배열 요소를 변경하려면? [복제]
MONGODB어떻게 특정 값에 MongoDB의 문서에있는 모든 배열 요소를 변경하려면? [복제]
나는 다음과 같은 문서가 있다고 가정
{
_id: ObjectId("5234cc89687ea597eabee675"),
code: "xyz",
tags: [ "school", "book", "bag", "headphone", "appliance" ],
qty: [
{ size: "S", num: 10, color: "blue" },
{ size: "M", num: 45, color: "blue" },
{ size: "L", num: 100, color: "green" }
]
}
{
_id: ObjectId("5234cc8a687ea597eabee676"),
code: "abc",
tags: [ "appliance", "school", "book" ],
qty: [
{ size: "6", num: 100, color: "green" },
{ size: "6", num: 50, color: "blue" },
{ size: "8", num: 100, color: "brown" }
]
}
{
_id: ObjectId("5234ccb7687ea597eabee677"),
code: "efg",
tags: [ "school", "book" ],
qty: [
{ size: "S", num: 10, color: "blue" },
{ size: "M", num: 100, color: "blue" },
{ size: "L", num: 100, color: "green" }
]
}
나는 그렇게 어떻게 0으로 코드 "EFG"를 갖는 문서의 요소 모두의 납입을 변경하려면? 나는 위치 연산자 루프를 사용해야합니까?
해결법
-
==============================
1.이 작업을 수행하는 가장 좋은 방법은 배열 요소를 일치 대량 () API를 사용하여 위치 $ 연산자를 개별적으로 업데이트 할 수 있습니다. 당신은 정말 당신의 수량 배열을 날려 안된다.
이 작업을 수행하는 가장 좋은 방법은 배열 요소를 일치 대량 () API를 사용하여 위치 $ 연산자를 개별적으로 업데이트 할 수 있습니다. 당신은 정말 당신의 수량 배열을 날려 안된다.
var bulk = db.mycollection.initializeOrderedBulkOp(), count = 0; db.mycollection.find({ "code" : "efg" }).forEach(function(doc){ var qty = doc["qty"]; for (var idx = 0; idx < qty.length; idx++){ bulk.find({ "_id": doc._id, "qty": { "$elemMatch": { "num": qty[idx]["num"]}} }).update({ "$set": { "qty.$.num": 0 }}) } count++; if (count % 200 == 0) { // Execute per 200 operations and re-init. bulk.execute(); bulk = db.mycollection.initializeOrderedBulkOp(); } }) // Clean up queues if (count % 200 != 0) bulk.execute();
from https://stackoverflow.com/questions/32610663/how-to-change-all-the-array-elements-in-a-mongodb-document-to-a-certain-value by cc-by-sa and MIT license
'MONGODB' 카테고리의 다른 글
[MONGODB] BATCHSIZE 필드 이름은 필드 프로젝션 무시 (0) | 2019.12.06 |
---|---|
[MONGODB] MongoDB를 역 정규식 (0) | 2019.12.06 |
[MONGODB] 어떻게 몽구스를 사용하여 MongoDB의 트랜잭션을 사용 하는가? (0) | 2019.12.06 |
[MONGODB] 몽고 컬렉션에서 특수 문자 작업 (0) | 2019.12.06 |
[MONGODB] 어떻게 몽구스의 DB 문서에 _id 설정하는 방법? (0) | 2019.12.06 |