[英]Unable to find document with specified parameters in MongoDb using NodeJs
我試圖找到與指定的ObjectId和post的文檔匹配,但結果它總是返回可用,即使文檔不存在那里。
這是我的代碼如下:
router.post('/check',(req,res) => {
MongoClient.connect(dburl,{useNewUrlParser:true},(err,client) => {
var ObjectId = require('mongodb').ObjectID;
var uId = { _id:new ObjectId(req.body.uId)};
var pId = req.body.pId;
if(err){
console.log("Error" +err);
}else{
var collect = client.db('Example').collection('Wishlist');
collect.find({_id:uId,postId:pId},(err,doc) => {
if(err){
console.log("Error" +err);
}if(doc){
res.send("Available");
}else{
res.send("Not available");
client.close();
}
});
}
});
});
有人請讓我知道我做錯了什么任何幫助將不勝感激。
謝謝
假設您沒有將req.body.pId
轉換為整數的中間件,並且它不是數據庫中的字符串值,那么您的查詢將無法找到任何內容。 123 !== "123"
,畢竟。 查詢{_id:uId,postId:pId}
當前正在搜索ObjectId
和string
。
將用戶輸入的值轉換為整數:
var pId = parseInt(req.body.pId, 10);
現在查詢{_id:uId,postId:pId}
將搜索ObjectId
和integer
。
看起來很奇怪的另一件事是你在對象中有你的_id
值。 雖然在MongoDb中可以實現,但不應該如下嗎?
var uId = new ObjectId(req.body.uId);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.