aggregation 의 $project 스테이지에서 필드값이 아닌 상수값을 지정할 수 있다.


아래와 같이 $literal 오퍼레이터를 이용한다.


db.statistics.aggregate([
  { $match: { _id: { $lte: 1000 } } },
  { $project: { _id: 0, "Tags": { $literal: "User" } } }
]);


Tags 필드 값은 "User"(문자열)으로 반환된다.



Posted by jungtae17
,

MongoDB 의 find() 쿼리 후 결과의 필드 이름을 바꾸고 싶을다면 Aggregation 을 이용하자.


aggregation 의 $project 스테이지에서 필드 이름을 지정할 수 있다.

단, 먼저 쿼리($match 스테이지) 실행한 결과에서 $project 스테이지를 실행한다.


db.game.aggregate([

  { $match: { _id: { $lte: 1000 } } },

  { $project: { _id: 0, "Rank": "$_id", Name: 1 } }

]);


위 코드는 '_id' 필드를 'Rank' 필드로 이름 바꿔서 결과를 반환한다.


참고로 _id 필드 이름을 실제로 바꾸는 것이 아니기 때문에 _id 필드를 포함하지 않도록 해야된다.


Posted by jungtae17
,