![](/img/trans.png)
[英]Mongoose findById query does not return a result. Object is always null.
[英]Mongoose find query result always a null object
我正拼命嘗試通過在應用程序中使用貓鼬的“查找”查詢來解決我的問題。
我開始非常了解中間件,我在其他應用程序上使用了它並且運行良好,但是在一個新項目中出了點問題,它只能在我的數據庫中找到空對象...
//server/app.js
var db = require('./lib/database');
var User = require('./models/user');
//server/lib/database.js
var mongoose = require('mongoose');
var db = function () {
mongoose.connect('mongodb://localhost/pipeline');
var connection = mongoose.connection;
connection.on('error', console.error.bind(console, 'connection error'));
connection.once('open', function callback() {
console.log('connected'); //result : connected
});
};
module.exports = db();
//server/models/user.js
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var userSchema = new Schema({ username: String, password: String });
module.exports = mongoose.model('User', userSchema);
貓鼬連接良好,控制台中沒有錯誤。 因此, 當貓鼬連接時,我使用此方法(我在LocalStrategy for PassportJS中精確地使用了此方法):
User.findOne({username: "Paul"}, function (err, user){
console.log(user); // result : null
});
它始終為null(在查詢過程中沒有錯誤),我還測試了find({})
以檢查所有條目,但結果是一個空數組[]
。
這是我的管道數據庫的用戶集合(已通過Robomongo檢查):
/* 0 */
{
"_id" : ObjectId("547649df8d99c22fa995b050"),
"username" : "Paul",
"password" : "test"
}
/* 1 */
{
"_id" : ObjectId("54765efdcd3b13c80c2d03e2"),
"username" : "Micka",
"password" : "lol"
}
謝謝您的幫助。
要讓'User'
模型使用User
集合,您需要顯式提供該集合名稱作為mongoose.model
的第三個參數,否則Mongoose將使用復數的小寫模型名稱,它們將是users
。
module.exports = mongoose.model('User', userSchema, 'User');
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.