2016-04-22 10 views
2

Ich habe ein Problem, das in den letzten Tagen ernsthaft gestört hat. Ich habe mongoose Setup für ein nodejs Projekt I definiert habe alle Schemata und Modelle wie untenMongoose find/findOne gibt immer null zurück, wenn der Filter hinzugefügt wird

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'); 

ich das Modell exportiert habe gezeigt, und ich verwende es in einem anderen Modul. wenn ich versuche Abfrage für die Ergebnisse wie folgt:

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

I Ergebnisse. Aber in dem Moment, ich füge einen Filter, wie folgt ein:

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

Das Ergebnis ist immer ein leeres Array.

Ich habe versucht mit findOne(), aber es gibt immer Null zurück.

+0

Wenn Sie Datensätze ohne Filter und wenn Sie Filter hinzufügen, dann gibt es nichts zurück, bedeutet, dass Sie keine übereinstimmenden Datensätze in db haben. –

+0

Haben Sie direkt in Mongo-Konsole überprüft, funktioniert es dort? –

+0

Fügen Sie Ihrem Beitrag Beispieldokumente hinzu, die Ihnen beim Verständnis Ihrer Anfrage helfen könnten. – AJS

Antwort

1

Versuchen Sie, die Anfragen wie diese

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

zu nennen Wenn es dies nicht funktioniert, fügen Sie vor Ihrem Anruf sicher sein, dass die Datenbank geöffnet ist.

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

Hoffe es hilft!

Verwandte Themen