2017-08-20 73 views
0

USER_ID 2 MongoDB中並不存在,但控制檯日誌不打印「不存在」貓鼬findOne數據不退出不工作

var query = PostData.findOne({ 'user_id': '2'}); 

query.exec(function (err, doc) { 
    if(doc) { 
    console.log('ok'); 
    } else { 
    console.log('does not exist'); 
    } 
}); 

沒有貓鼬它的工作原理:

connection.db.collection("PostData", function(err, collection){ 
    collection.find({ 'user_id': '2'}).toArray(function(err, data){ 
     console.log(data); // it will print your collection data 
    }) 
}); 

打印[]

+0

'err'呢?它是否設置?你使用哪種版本的貓鼬? – Dario

+0

版本4.11.7 * err =句柄錯誤 – Nimesha

+0

您能記錄錯誤嗎? 'if(err){console.log(err); return; }; if(doc){console.log('ok'); } else { console.log('does not exist'); }' – Dario

回答

0

無論對象是否存在,MongoDB都會返回一個數組。如果對象存在,他們的數組將被填充,否則它只是一個空數組。所以如果你想檢查用戶是否存在,你必須檢查doc.length,如果它是0,那麼這意味着用戶不存在。

+0

我使用它,但不工作:( – Nimesha

+0

你能告訴我你是如何更改代碼嗎?請在這裏發佈 –

+0

最後我用count方法來解決問題PostData.findOne({'user_id':'1',' created_at「:{$ gte:today}})。count – Nimesha