Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 맥
- [Object]
- collection.find
- 맥에 파이썬 설치
- MacOS
- console.log
- mongodb nodejs driver
- Node.js
- Jupyter notebook
- mongo-native
- node.js 연동
- Installation
- mongoDB [Object]
- pip jupyter
- Projection
- util.inspect
- node.js설치
- query
- mongodb
- MYSQL
- 파이썬3
- homebrew
- python3
- nodejs mongodb
- Windows10
Archives
- Today
- Total
Bon Voyage
Node.js MongoDB 드라이버 : collection.find() option 사용법 본문
mongoDB에 find 쿼리를 수행하던 중 projection이 적용되지 않는 문제가 발생했다.
collection.find({id: id},{followmap:1}).toArray(function(err, followmaps) {
...
});
id 값을 받아서, 해당 document의 내용 중 'followmap'이라는 필드의 값만 불러와야 하는데,
자꾸 전체 필드값이 리턴되는 것이 문제였다.
MongoDB의 shell 쿼리에서는 맞는 문법이지만,
node.js 드라이버에서는 그게 적용되지 않는 것 같았다.
API docs를 찾아보니 안 되는 이유가 있었다.
(참고: https://mongodb.github.io/node-mongodb-native/3.2/api/Collection.html#find )
collection.find()의 내용을 보자.
find(query, options)
MongoDB에서 받은 결과물을 iterate할 수 있는 커서를 생성하는 메소드다.
앞에는 쿼리를 그대로 주고, 뒤에 줘야 하는 option이 문제인데!
option에 굉장히 많은 요소들이 있다. 그중 내가 원하는 기능은 projection이다.projection
쿼리에서 리턴할 필드를 정해주는 옵션이다. 포함 혹은 배제를 1, -1로 주면 된다.
이 옵션을 그냥 주면 안되고, `{projection : {리턴할 필드 : 1}}` 이렇게 줘야 했다.
collection.find({id: id}, {projection:{ followmap: 1}}).toArray(function(err, followmaps) {
...
});
이렇게 하니 원하는 대로 결과가 나왔다.
'개념 공부 > 데이터베이스' 카테고리의 다른 글
'MongoDB in Action'으로 정리해보는 MongoDB의 인덱스 개념 (0) | 2019.09.29 |
---|---|
'이것이 MySQL이다'로 정리해보는 인덱스 개념 (0) | 2019.09.28 |
MongoDB Node.js 드라이버, 간단하게 시작해보기 (0) | 2019.07.17 |
NoSQL 데이터 모델링 Tip (0) | 2019.07.16 |
MongoDB에서의 Geospatial Data (0) | 2019.07.16 |
Comments