꿈꾸는 시스템 디자이너

MongoDB aggregation할때 _id를 match옵션에 넣는법 본문

Web Service/Node.js

MongoDB aggregation할때 _id를 match옵션에 넣는법

독행소년 2018. 11. 7. 13:39

일반적인 mongoDB의 기능을 이용할 때 조건 검색에 원하는 document의 _id를 넣어서 조회가 가능하지만

aggregate를 이용할 때에는 _id 필드를 검색(match) 조건에 넣으면 실제 조회가 이루어지지 않는다.


아마도 aggregate의 group 기능에 _id를 이용하는 것과 연관있지 않을까 싶긴한데 일종의 버거 같기도 하다.


여튼 aggreate의 match절에 _id 필드를 넣고 싶을 때에는 new ObjectId() 함수를 이용해서 값을 넣어야 한다.


//미들웨어 설정

const Mongoose = require('mongoose');

const ObjectId = Mongoose.Types.ObjectId;


// aggreate의 match절, 아래와 같이 new ObjectId 함수를 이용해서 필드값을 넣어줘야 조회가 가능

$match: {

   _id: new ObjectId(reqMsg.id),

   index: reqMsg.index

}

Comments