mongoose를 활용해서 몽고db에서 특정 컬렉션에 조회기능을 작업중에 있었다.
그런데, A라는 컬렉션은 조회, 집계, 합계등 기능이 잘 작동하는데 B라는 컬렉션에 대해서는 아무리 해도 값이 없다고 나오는 것 이었다.
var mongoose = require("mongoose");
var Schema = mongoose.Schema;
var url = 'mongodb://127.0.0.0:27017/TEST_DB';
mongoose.connect(url, { useNewUrlParser: true });
var structor = new Schema({ //test_a의 구조
"_id" : Schema.Types.ObjectId,
"title" : String,
"num" : Number,
});
var target = mongoose.model("test_b", structor ); //test_b라는 컬렉션을
new Promise(function (aa,qq){
target.find({},function(ee,bb){ //아무 조건없이 조회하는데..
console.log(bb.length,'bb'); //0이 나온다....
aa('succ');
});
}).then(function(){
mongoose.disconnect();
});
정말 별거 없는 코드였다. 그냥 단순히 데이터를 조회하는 기능이었는데 값이 자꾸 없다고 나오는 것 이었다.
그러다 구글링을 하다보니..컬렉션 이름을 지정해주어야 하는 경우가 있다고하여 컬렉션 이름을 주어보았다.
var mongoose = require("mongoose");
var Schema = mongoose.Schema;
var url = 'mongodb://127.0.0.0:27017/TEST_DB';
mongoose.connect(url, { useNewUrlParser: true });
var structor = new Schema({ //test_a의 구조
"_id" : Schema.Types.ObjectId,
"title" : String,
"num" : Number,
});
structor.set('collection', 'test_b'); //컬렉션 이름을 이곳에서 지정한다.
var target = mongoose.model("test_b", structor ); //test_b라는 컬렉션을
new Promise(function (aa,qq){
target.find({},function(ee,bb){ //아무 조건없이 조회하는데..
console.log(bb.length,'bb'); //이제 나온다!!
aa('succ');
});
}).then(function(){
mongoose.disconnect();
});
Schema에서 set이라는 함수를 활용해서 collection 이름을 지정해 주니까 값이 잘 나옴을 확인 하였다.
몽고DB 컬렉션이 조회되지 않는 경우에는 Schema에서 컬렉션 이름을 지정해 주도록 하자.
반응형
'몽고DB > Nodejs 몽고DB' 카테고리의 다른 글
Node.js mongoose Aggregate (0) | 2019.08.01 |
---|---|
Node.js Http parser 그리고 몽고DB (2) | 2019.04.27 |
* 위 에니메이션은 Html의 캔버스(canvas)기반으로 동작하는 기능 입니다. Html 캔버스 튜토리얼 도 한번 살펴보세요~ :)
* 직접 만든 Html 캔버스 애니메이션 도 한번 살펴보세요~ :)
댓글