[MONGODB] MongoDB의 컬렉션 모든 문서에 새 필드를 추가
MONGODBMongoDB의 컬렉션 모든 문서에 새 필드를 추가
어떻게 기존 컬렉션의 모든 문서에 새 필드를 추가 할 수 있습니까?
나는 기존 문서의 필드를 업데이트하는 방법을하지만 컬렉션의 모든 문서에 새 필드를 추가하지 않는 방법을 알고있다. 어떻게 몽고 쉘에서이 작업을 수행 할 수 있습니다?
해결법
-
==============================
1.지정된 필드가 존재하지 않는 경우 동일 업데이트 기존의 수집 필드로, $ 세트는 새로운 필드를 추가합니다.
지정된 필드가 존재하지 않는 경우 동일 업데이트 기존의 수집 필드로, $ 세트는 새로운 필드를 추가합니다.
이 예제를 체크 아웃 :
> db.foo.find() > db.foo.insert({"test":"a"}) > db.foo.find() { "_id" : ObjectId("4e93037bbf6f1dd3a0a9541a"), "test" : "a" } > item = db.foo.findOne() { "_id" : ObjectId("4e93037bbf6f1dd3a0a9541a"), "test" : "a" } > db.foo.update({"_id" :ObjectId("4e93037bbf6f1dd3a0a9541a") },{$set : {"new_field":1}}) > db.foo.find() { "_id" : ObjectId("4e93037bbf6f1dd3a0a9541a"), "new_field" : 1, "test" : "a" }
편집하다:
경우 귀하의 모든 컬렉션에 new_field을 추가하려면, 당신은 모든 문서를 업데이트하려면 true (마지막 PARAM)에 빈 선택 및 설정 멀티 플래그를 사용해야합니다
db.your_collection.update( {}, { $set: {"new_field": 1} }, false, true )
편집하다:
위의 예에서 마지막 2 개 필드 허위 사실을 지정 upsert 및 멀티 플래그합니다.
Upsert는 : true로 설정된 경우, 문서 쿼리 기준과 일치하지 않는 새 문서를 생성합니다.
멀티 : True로 설정이 쿼리 기준을 충족하는 여러 문서를 업데이트합니다. false로 설정하면, 하나의 문서를 업데이트합니다.
이것은 2.2 이전 몽고 버전입니다. 최신 버전의 쿼리가 약간 변경
db.your_collection.update({}, {$set : {"new_field":1}}, {upsert:false, multi:true})
from https://stackoverflow.com/questions/7714216/add-new-field-to-every-document-in-a-mongodb-collection by cc-by-sa and MIT license
'MONGODB' 카테고리의 다른 글
[MONGODB] 어떻게 MongoDB의 모든 문서에 대한 필드 이름을 바꿀 수 있습니다? (0) | 2019.12.02 |
---|---|
[MONGODB] 어떻게 쉘 스크립트를 통해 몽고 명령을 실행합니다? (0) | 2019.12.02 |
[MONGODB] 어떻게 몽구스의 문서 upsert / 업데이트하려면 어떻게해야합니까? (0) | 2019.12.02 |
[MONGODB] 어떻게하여 MongoDB의 마지막 N 기록을 얻을 수 있습니까? (0) | 2019.12.02 |
[MONGODB] 어떻게하여 MongoDB에서 참조 된 개체는 쿼리합니까? (0) | 2019.12.01 |