반응형
MongoDB 셸에서 쿼리 업데이트
셸에서 제 질문은 다음과 같습니다.
db.checkin_4e95ae0926abe9ad28000001.update({location_city:"New York"}, {location_country: "FUDGE!"});
하지만, 그것은 실제로 내 기록을 업데이트하지는 않습니다.오류도 없습니다.내가 할 때db.checkin_4e95ae0926abe9ad28000001.find({location_city:"New York"});
이것을 실행한 후, 나는 내 모든 결과를 얻지만,location_country
변경되지 않음:
{
"_id": ObjectId("4e970209a0290b70660009e9"),
"addedOn": ISODate("2011-10-13T15:21:45.772Z"),
"location_address1": "",
"location_city": "New York",
"location_country": "United States",
"location_latLong": {
"xLon": -74.007124,
"yLat": 40.71455
},
"location_source": "socialprofile",
"location_state": "New York",
"location_zip": ""
}
업데이트 함수의 두 번째 매개 변수에서 업데이트하려면 $set 연산자를 사용해야 하기 때문입니다.location_country
아래의 예와 같이:
db.checkin_4e95ae0926abe9ad28000001.update(
{location_city:"New York"}, //find criteria
// this row contains fix with $set oper
{ $set : { location_country: "FUDGE!"}});
여기에서 사용 가능한 업데이트 연산자 목록을 찾을 수 있습니다.
버전 3.6에서 변경되었습니다.다음은 업데이트 구문입니다.
db.collection.update(
<query>,
<update>,
{
upsert: <boolean>,
multi: <boolean>,
writeConcern: <document>,
collation: <document>,
arrayFilters: [ <filterdocument1>, ... ]
}
)
예:
db.getCollection('products').update({},{$unset: {translate:1, qordoba_translation_version:1}}, {multi: true})
예를 들어, 다음을 수행합니다.
db.checkin_4e95ae0926abe9ad28000001.update(
{location_city:"New York"}, //query
// $update query
{ $set : { location_country: "FUDGE!"}});
기본적으로 update() 메서드는 단일 문서를 업데이트합니다.쿼리 기준과 일치하는 모든 문서를 업데이트하도록 다중 매개변수를 설정합니다.
예 2:
db.checkin_4e95ae0926abe9ad28000001.update(
{location_city:"New York"}, //query
// $update query
{ $set : { location_country: "FUDGE!"}}, {multi: true});
db.m_country.update(
{"countryId": "962a0935-bf3d-4f63-a53c-254760273ede"},
{$set: {'countryPopulation': '12540000'}})
업데이트 전
> db.student.find({name:"Venky"}).pretty();
{
"_id" : ObjectId("6012e64dc2979ddffe1e5df9"),
"name" : "Venky",
"dept" : "MCA",
"age" : "26",
"phone" : "89786465"
}
업데이트 명령
> db.student.update({name:"Venky"},{$set: {name:"DODDANNA CHAWAN",dept:"MCA(CS)", age:"25", phone:"1234567890"}});
찾기 명령 결과 참조
> db.student.find({name:"DODDANNA CHAWAN"}).pretty();
업데이트된 결과 이후
{
"_id" : ObjectId("6012e64dc2979ddffe1e5df9"),
"name" : "DODDANNA CHAWAN",
"dept" : "MCA(CS)",
"age" : "25",
"phone" : "1234567890"
}
실제 환경에서 고유한 "_id"를 사용하여 문서를 일치시킵니다. 이름이 중복으로 발견되기 때문입니다.
언급URL : https://stackoverflow.com/questions/7756661/update-query-in-mongodb-shell
반응형
'itsource' 카테고리의 다른 글
Vuejs 3은 하위 구성 요소에서 상위 구성 요소로 이벤트를 내보냅니다. (0) | 2023.06.21 |
---|---|
src/**/*.graphql 포인터에 대한 GraphQL 유형 정의를 찾을 수 없습니다. (0) | 2023.06.21 |
Ubuntu에서 노드 패키지 관리자를 사용하여 패키지를 설치할 수 없음 (0) | 2023.06.16 |
팬더와 함께 기둥에 비닝하기 (0) | 2023.06.16 |
레일에서 루비 줄 바꿈 없이 콘솔에 "puts"를 사용하려면 어떻게 해야 합니까? (0) | 2023.06.16 |