본문 바로가기
블로그 이미지

방문해 주셔서 감사합니다! 항상 행복하세요!

  
   - 문의사항은 메일 또는 댓글로 언제든 연락주세요.
   - "해줘","답 내놔" 같은 질문은 답변드리지 않습니다.
   - 메일주소 : lts06069@naver.com


몽고DB/Nodejs 몽고DB

Node.js mongoose에서 몽고db 컬렉션이 조회되지 않을 때

야근없는 행복한 삶을 위해 ~
by 마샤와 곰 2019. 7. 23.

 

 

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 캔버스 애니메이션 도 한번 살펴보세요~ :)

댓글