簡體   English   中英

貓鼬查找查詢結果始終為空對象

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM