2016-04-22 43 views
2

我有過去幾天嚴重困擾的問題。我有mongoose設置爲我所定義的所有模式和車型nodejs項目如下圖所示當添加過濾器時,Mongoose find/findOne總是返回null

var studentSchema = new Schema({ 
    fullname: {type: String, required: true}, 
    student_id: {type: String, required: true, unique: true}, 
    votingNo: {type: Number, required: true, unique: true}, 
    voted: {type: Boolean, required: true, default: false} 
}); 
var Student = mongoose.model('Student', studentSchema, 'student'); 

我已出口型號,我用它在另一個模塊中。 每當我試圖查詢,像這樣的結果:

model.Student.find({}, function (err, students) { 
    console.log(err); 
    console.log(students); 
}); 

我得到的結果。但是現在我添加一個過濾器,如下所示:

model.Student.find({student_id: studentId}, function (err, students) { 
    console.log(err); 
    console.log(students); 
}); 

結果始終是一個空數組。

我試過使用findOne()但它總是返回null。

+0

如果您在沒有任何過濾器的情況下獲取記錄,並且添加了過濾器,那麼它不會返回任何內容,這意味着您在數據庫中沒有任何匹配的記錄。 –

+0

你在mongo控制檯直接檢查過,它在那裏工作嗎? –

+0

添加示例文件到您的文章,可能有助於瞭解您的查詢 – AJS

回答

1

嘗試致電查詢,這樣

var Student = mongoose.model('Student'); 
Student.find({}, function (err, students) { 
    console.log(err); 
    console.log(students); 
}); 

如果它不工作,你的電話之前添加這是確保該數據庫是開放的。

var mongoose = require('mongoose'); 
console.log(mongoose.connection.readyState); // Should not return 0 

希望它有幫助!