簡體   English   中英

無法使用NodeJ在MongoDb中找到具有指定參數的文檔

[英]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}當前正在搜索ObjectIdstring

將用戶輸入的值轉換為整數:

var pId = parseInt(req.body.pId, 10);

現在查詢{_id:uId,postId:pId}將搜索ObjectIdinteger


看起來很奇怪的另一件事是你在對象中有你的_id值。 雖然在MongoDb中可以實現,但不應該如下嗎?

var uId = new ObjectId(req.body.uId);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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