Computer >> 컴퓨터 >  >> 프로그램 작성 >> MongoDB

기존 필드를 모두 포함하고 MongoDB의 문서에 새 필드를 추가하시겠습니까?

<시간/>

$addFields 연산자를 사용하여 이를 달성할 수 있습니다. 개념을 이해하기 위해 문서로 컬렉션을 만들어 보겠습니다. 문서로 컬렉션을 생성하는 쿼리는 다음과 같습니다 -

> db.addFieldDemo.insertOne({"EmployeeId":101,"EmployeeName":"Larry","EmployeeDetails":{
   "EmployeeSalary":65000,"EmployeeCity":"New York","Message":"Hi"}});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c7f654d8d10a061296a3c44")
}

find() 메서드를 사용하여 컬렉션의 모든 문서를 표시합니다. 쿼리는 다음과 같습니다 -

> db.addFieldDemo.find().pretty();

다음은 출력입니다 -

{
   "_id" : ObjectId("5c7f654d8d10a061296a3c44"),
   "EmployeeId" : 101,
   "EmployeeName" : "Larry",
   "EmployeeDetails" : {
      "EmployeeSalary" : 65000,
      "EmployeeCity" : "New York",
      "Message" : "Hi"
   }
}

다음은 기존 필드를 모두 포함하고 MongoDB의 문서에 새 필드를 추가하는 쿼리입니다 -

> db.addFieldDemo.aggregate([ { "$addFields": { "EmployeeBasicSalary":"$EmployeeDetails.EmployeeSalary" } } ]).pretty();

다음은 출력입니다 -

{
   "_id" : ObjectId("5c7f654d8d10a061296a3c44"),
   "EmployeeId" : 101,
   "EmployeeName" : "Larry",
   "EmployeeDetails" : {
      "EmployeeSalary" : 65000,
      "EmployeeCity" : "New York",
      "Message" : "Hi"
   },
   "EmployeeBasicSalary" : 65000
}

샘플 출력을 보면 "EmployeeBasicSalary"가 추가되었습니다.