Mongodb: 컬렉션에 새 필드를 추가하는 방법


다음 방법을 사용하여 MongoDB 컬렉션의 각 문서에 새 필드를 추가할 수 있습니다.

방법 1: 값 없이 새 필드 추가

 db.collection.updateMany({}, { $set :{" new_field ": null}})

방법 2: 특정 값을 가진 새 필드 추가

 db.collection.updateMany({}, { $set :{" new_field ": 10 }}) 

방법 3: 기존 필드의 값을 사용하여 새 필드 추가

 db.collection.updateMany(
    {},
    [
        {" $set ": {" name ": { " $concat ": [" $field1 ", " ", " $field2 "]}}}
    ]
)

다음 예는 다음 문서를 가지고 수집 과 함께 각 방법을 사용하는 방법을 보여줍니다.

 db.teams.insertOne({team: " Mavs ", position: " Guard ", points: 31 })
db.teams.insertOne({team: " Spurs ", position: " Guard ", points: 22 })
db.teams.insertOne({team: " Rockets ", position: " Center ", points: 19 })
db.teams.insertOne({team: " Warriors ", position: " Forward ", points: 26 })
db.teams.insertOne({team: " Cavs ", position: " Guard ", points: 33 })

예 1: 값 없이 새 필드 추가

다음 코드를 사용하여 컬렉션의 각 기존 문서에 null 값이 있는 “bounces”라는 새 필드를 추가할 수 있습니다.

 db.teams.updateMany({}, { $set :{" rebounds ": null}})

다음 쿼리를 사용하여 처음으로 업데이트된 문서를 표시할 수 있습니다.

 db.teams.find().limit( 3 )

이 쿼리는 다음 문서를 반환합니다.

 { _id: ObjectId("6189325896cd2ba58ce928e5"),
  team: 'Mavs',
  position: 'Guard',
  points: 31,
  rebounds: null }

{ _id: ObjectId("6189325896cd2ba58ce928e6"),
  team: 'Spurs',
  position: 'Guard',
  points: 22,
  rebounds: null }

{ _id: ObjectId("6189325896cd2ba58ce928e7"),
  team: 'Rockets',
  position: 'Center',
  points: 19,
  rebounds: null }

이제 각 문서에는 null 값이 있는 “bounces”라는 필드가 있습니다.

예 2: 특정 값을 가진 새 필드 추가

다음 코드를 사용하여 컬렉션의 각 기존 문서에 값이 10 인 “bounces”라는 새 필드를 추가할 수 있습니다.

 db.teams.updateMany({}, { $set :{" rebounds ": 10 }})

다음 쿼리를 사용하여 처음으로 업데이트된 문서를 표시할 수 있습니다.

 db.teams.find().limit( 3 )

이 쿼리는 다음 문서를 반환합니다.

 { _id: ObjectId("6189325896cd2ba58ce928e5"),
  team: 'Mavs',
  position: 'Guard',
  points: 31,
  rebounds: 10 }

{ _id: ObjectId("6189325896cd2ba58ce928e6"),
  team: 'Spurs',
  position: 'Guard',
  points: 22,
  rebounds: 10 }

{ _id: ObjectId("6189325896cd2ba58ce928e7"),
  team: 'Rockets',
  position: 'Center',
  points: 19,
  rebounds: 10 }

이제 각 문서에는 값이 10인 “bounces”라는 필드가 있습니다.

예시 3: 기존 필드의 값을 사용하여 새 필드 추가

다음 코드를 사용하여 값이 기존 “team” 및 “position” 필드를 연결한 “name” 필드를 추가할 수 있습니다.

 db.teams.updateMany(
    {},
    [
        {" $set ": {" name ": { " $concat ": [" $team ", " ", " $position "]}}}
    ]
)

다음 쿼리를 사용하여 처음으로 업데이트된 문서를 표시할 수 있습니다.

 db.teams.find().limit( 3 )

이 쿼리는 다음 문서를 반환합니다.

 { _id: ObjectId("618934cb96cd2ba58ce928ea"),
  team: 'Mavs',
  position: 'Guard',
  points: 31,
  name: 'Mavs Guard' }

{ _id: ObjectId("618934cb96cd2ba58ce928eb"),
  team: 'Spurs',
  position: 'Guard',
  points: 22,
  name: 'Spurs Guard' }

{ _id: ObjectId("618934cb96cd2ba58ce928ec"),
  team: 'Rockets',
  position: 'Center',
  points: 19,
  name: 'Rockets Center' }

이제 각 문서에는 “팀”과 “직위” 필드를 연결한 값인 “이름”이라는 필드가 있습니다.

참고 : updateMany() 함수에 대한 전체 문서는 여기에서 찾을 수 있습니다.

추가 리소스

다음 튜토리얼에서는 MongoDB에서 다른 일반적인 작업을 수행하는 방법을 설명합니다.

MongoDB: 필드 이름을 바꾸는 방법
MongoDB: 필드를 삭제하는 방법
MongoDB: 필드에 문자열이 포함되어 있는지 확인하는 방법
MongoDB: 날짜 범위로 쿼리하는 방법
MongoDB: “Like” 정규식을 사용하여 쿼리하는 방법

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다