2015-10-13 116 views
1

我正在使用mongo在Express中開發應用程序。我必須檢查集合中是否存在特定的文檔。我這樣做:快速:查詢以檢查文檔是否存在

router.route('/').post(function (req, res, next) { 
    var name = req.body.name; 
    var dept = req.body.dept; 
    var arr = mongoose.model('User').find({'name': name, 'dept': dept}); 
    if(arr.length() > 0){ 
     //do something 
    } 
} 

是什麼mongoose.model('User').find({'pemail': email, 'password': password});實際上返回,因爲當我運行的應用程序,它給了我這個錯誤:

TypeError: undefined is not a function

任何幫助嗎?

+1

你需要'裏面找到(回調函數)'。看看這裏的正確語法:http://mongoosejs.com/docs/queries.html – Hamed

+1

更好的是'.findOne()',但我認爲你甚至沒有將'mongoose'導入到本地作用域通過'require'。加上已經提到的回調。 –

+0

謝謝@Hamed,這是做的工作,請把它作爲答案在這裏... – Saani

回答

1

您需要添加的回調函數,嘗試這樣的事情:

post(function (req, res, next) { 
    var name= req.body.name; 
    var dept = req.body.dept; 
    mongoose.model('User').find({'dept': dept, 'name': name}, function(err, user){ 
     if(err){ 
      //do something 
     }else{ 
      //do other thing 
     } 
    }); 

} 
+1

太好了,謝謝! – Saani