복붙노트

[MONGODB] 몽구스 발견 () 반환하지 결과

MONGODB

몽구스 발견 () 반환하지 결과

나는 경로 설정이 모델은 아래와 같이 할 일이라고 그 용도까지 :

app.get('/api/todos', function(req, res) {
    Todo.find({},function(err, todos) {
        if (err)
            res.send(err);
        console.log("number of todos " + todos.length);
        res.json(todos); // return all todos in JSON format
    });
});

그러나, todos.length은 어떤 결과를 찾지 않는 한, 항상 0입니다. 언제 실행 :

use test3
db.Todo.find() 

나는 같은 DB에 연결 한 확신합니다. 나는 mongod 콘솔에서 연결을 볼 수 있습니다. 내 연결이 내부 설정입니다 / 파일을 db.js :

module.exports = {
    url : 'mongodb://localhost/test3'
}

다음과 같이 내 server.js의 연결은 다음과 같습니다

var db = require('./config/db');
mongoose.connect(db.url);

몽고 쉘 I 1 개 결과를 얻을. 나는 찾기의 요청에 의한 수익으로이 결과를 기대하고있다. 뭔가 내가 놓친되어 있습니까? 나는 몽구스 3.6을 사용하고 있습니다

건배

해결법

  1. ==============================

    1.그래서 당신은 이미 기존 데이터베이스에서 컬렉션을 만들었으며 지금 당신이이 몽구스 모델에 액세스하려고하는 것입니다처럼이 많이 보인다.

    그래서 당신은 이미 기존 데이터베이스에서 컬렉션을 만들었으며 지금 당신이이 몽구스 모델에 액세스하려고하는 것입니다처럼이 많이 보인다.

    문제는 몽구스는 쉘 몽구스는 기본적으로하고있는 것과 동일하지 않습니다에서 예 있도록 보여주고, 당신이 인식되지 않을 수있는 몇 가지 기본값을 사용한다는 것입니다.

    당신도 기본 또는 몽구스는 기존의 이름과 일치하도록 무엇을 변화 예상하는을 몽구스 일치하도록 컬렉션의 이름을 바꿀 수 있습니다. 후자의 경우, 직접 때문에 같은 모델의 이름을 정의 :

    mongoose.model( "Todo", toDoSchema, "Todo" );
    

    그래서 메소드의 세 번째 인수는 실제로 수집에 사용하는 명시 적으로 이름을 지정합니다. 이 없으면 기본 규칙에서 가정 이름은 "일하러을"입니다.

    그들을 일치하도록하기 위해 두 방법 중 하나를 사용합니다.

  2. from https://stackoverflow.com/questions/23100328/mongoose-find-not-returning-result by cc-by-sa and MIT license