[MONGODB] MongoDB를 통해 몽고 쉘에서 중첩 된 배열을 업데이트 [중복]
MONGODBMongoDB를 통해 몽고 쉘에서 중첩 된 배열을 업데이트 [중복]
MongoDB의 문서는 다음과 같은 :
{
"_id" : 2,
"mem_id" : M002,
"email" : "xyz@gmail.com",
"event_type" : [
{
"name" : "MT",
"count" : 1,
"language" : [
{
"name" : "English",
"count" : 1,
"genre" : [
{
"name" : "Action",
"count" : 6
},
{
"name" : "Sci-Fi",
"count" : 3
}
],
"cast" : [
{
"name" : "Sam Wortington",
"count" : 2
},
{
"name" : "Bruce Willis",
"count" : 4
},
{
"name" : "Will Smith",
"count" : 7
},
{
"name" : "Irfan Khan",
"count" : 1
}
]
}
]
}
]
}
나는 형의 배열, 특별히 EVENT_TYPE, 언어, 장르 때문에 중첩 캐스트입니다 필드를 업데이트 할 수 없습니다입니다. 기본적으로, 각각의 하위 문서에 대한 카운트 필드와 함께 4 개 개의 모든 언급 한 필드를 업데이트하고 싶었다. 값이이 값의 수를 증가해야 새로운 다른 경우 업데이트 문은 나무에 값을 삽입해야합니다. 몽고 쉘에서 쿼리 무엇을 할 수 있습니까? 감사
해결법
-
==============================
1.직접 MongoDB를 현재의 한계를 때리고있다. 문제는 엔진이 여러 위치 연산자를 지원하지 않는다는 것입니다. 중첩 된 배열을 업데이트 할 수있는 위치`$ '연산자의 다중 사용을 참조하십시오
직접 MongoDB를 현재의 한계를 때리고있다. 문제는 엔진이 여러 위치 연산자를 지원하지 않는다는 것입니다. 중첩 된 배열을 업데이트 할 수있는 위치`$ '연산자의 다중 사용을 참조하십시오
(이 또한 언급) https://jira.mongodb.org/browse/SERVER-831이를위한 오픈 티켓이 있습니다
또한 데이터 모델을 변경하는 방법에 대한이 하나를 읽을 수 있습니다하여 MongoDB의 중첩 배열 업데이트
당신을 위해 가능한 경우, 당신은 할 수 있습니다 :
db.collection.update({_id:2,"event_type.name":'MT' ,"event_type.language.name":'English'},{$set:{"event_type.0.language.$.count":<number>}}) db.collection.update({_id:2,"event_type.name":'MT' ,"event_type.language.name":'English'},{$set:{"event_type.$.language.0.count":<number>}})
하지만 당신은 할 수 없습니다
db.collection.update({_id:2,"event_type.name":'MT' ,"event_type.language.name":'English'},{$set:{"event_type.$.language.$.count":<number>}})
-
==============================
2.경우로하자 걸릴 경우 :
경우로하자 걸릴 경우 :
이 명령은 MT에서 GMT에 EVENT_TYPE 목록 내부 객체의 이름을 업데이트합니다 :
BEFORE: db.testnested.find({}, {"event_type.name" : 1}) { "_id" : 2, "event_type" : [ { "name" : "MT" } ] } AFTER: db.testnested.find({}, {"event_type.name" : 1}) { "_id" : 2, "event_type" : [ { "name" : "GMT" } ] }
인턴 목록입니다 같은 언어, 장르 EVENT_TYPE 내부 2.To 업데이트 필드 : 이것에 대한 직접 쿼리가 없습니다. 그런 다음 자바 스크립트 또는 원하는 언어 등을 사용하여 문서) (저장 같은 것을 문서 읽기, 업데이트 할 필요가있다. 나는 다른 방법으로는 몽고 2.4까지 사용할 수 있다고 생각 해달라고
추가 문서에 대해서는, 저장 참조 할 수 있습니다 ().
감사!
from https://stackoverflow.com/questions/18573117/updating-nested-arrays-in-mongodb-via-mongo-shell by cc-by-sa and MIT license
'MONGODB' 카테고리의 다른 글
[MONGODB] $ graphLookup에 대한 문자열에 ObjectId가 일치 (0) | 2019.12.03 |
---|---|
[MONGODB] MongoDB의 : 집계 프레임 워크 : 그룹화 ID 당 마지막 날짜가 문서를 가져 오기 (0) | 2019.12.03 |
[MONGODB] 몽구스 고유 색인 작동하지 않습니다! (0) | 2019.12.03 |
[MONGODB] MongoDB의 쿼리 여러 컬렉션을 한 번에 (0) | 2019.12.03 |
[MONGODB] 몽구스에서 어떻게 날짜별로 정렬합니까? (Node.js를) (0) | 2019.12.03 |