2015-01-27 2 views
0

mongodb와 mongoose로 시작하지만 데이터베이스를 쿼리하는 데 문제가 있습니다. 내가하려고하는 것에 대한 많은 온라인 자습서가 있지만 그것은 나를 위해 일하는 것 같지 않습니다. .find() 함수가 호출되지 않고 콜렉션이 표시되지 않습니다. 필자는 Subject라는 콜렉션을 가지고 있는데, 여기에는 몇 가지 값이 있습니다 (수동으로 mongodb 명령 행에 입력 했음). 나는 관련 코드를 포함 시키려고했지만 다른 것이 필요한지 알려주지. 미리 감사드립니다.mongodb + mongoose : 쿼리가 입력되지 않음 .find 함수

app.js는

require('./models/model.js'); 
var conn = mongoose.createConnection('mongodb://localhost/test'); 
var Subject = mongoose.model('Subjects'); 

Subject.find({ }, function (err, subjects) { 
    if(err) console.log("Error"); // There is no "Error" 
    console.log("Made it");   // There is no "Made it" 
    console.log(subjects); 
}); 

model.js이 mongoose.model를 사용하여 만든 모델에서 사용되는 기본 연결 풀을 열

var mongoose = require('mongoose'); 
var Schema = mongoose.Schema; 
var SubjectsSchema = new Schema ({ 
    subject: { type: String } 
}); 
module.exports = mongoose.model('Subjects', SubjectsSchema); 

답변

0

전화 mongoose.connect 대신 mongoose.createConnnection의 파일을 파일 :

mongoose.connect('mongodb://localhost/test'); 
+0

감사합니다. 관련 메모에서 나는 어떤 과목도 보지 못했습니다. mongo 명령 줄에서 db.Subjects.find()를 입력하면 입력 한 내용을 볼 수 있습니다. 그러나 새 데이터를 삽입 할 때 'var sub = new Subject ({subject : 'some subject'}); sub.save (function (err) {if (err) console.log (err);}); 출력이 표시됩니다. 여기서 무슨 일이 일어나고있는거야? – Szpok

+0

mongoose.model ('Subjects', SubjectsSchema, 'Subjects'); 대신 사용해보십시오. Mongoose는 소위 '유용하게'소문자를 사용하고'model' 호출에서 명시적인 이름을 제공하지 않으면 컬렉션 이름을 얻기 위해 모델 이름을 복수화합니다. – JohnnyHK

+0

니스. 감사. 나는 나의 몽고 db를 점검했고 명백하게 '주제'수집뿐만 아니라 '주제'수집을 가졌다. – Szpok

관련 문제