簡體   English   中英

Express.js MongoDB更新查詢

[英]Expressjs mongodb update query

在有條件的books.update({“ id”:{$ eq:bid}},{$ set:{“ status”:login}} ...中,當我使用可變出價時,它不起作用,但是如果我把東西像書一樣。 update({“ id”:{$ eq:1}},{$ set:{“ status”:login}}的效果很好。我必須在項目中使用變量。

節點代碼

app.get("/logged/:login/borrow/:bid/confirm", function(req,res){
  var login = req.params.login;
  var bid = req.params.bid;
  MongoClient.connect(url, function(err, db) {
  assert.equal(null, err);
  console.log("Nawiązano połączenie z serwerem");
  var books = db.collection('books');
      books.update({"id": {$eq: bid}}, {$set:{"status": login}}, function(er, result){
      assert.equal(er, null);
      res.redirect('/logged/'+login+'/borrow');
      });
    db.close();
  });
});

粘貼hjs文件以防萬一

  <a href="/logged/{{nick}}/return/{{id}}/confirm"></a>

也許req.params.bid正在為您提供一個字符串號,因此它不匹配。 id字段可能正在尋找1,但您將以可變出價發送“ 1”。

嘗試將出價轉換為數字,然后檢查。

bid = parseInt(bid,10);

我猜測id是一個數字值,因為帶有1的查詢有效。

請求參數是字符串。 將字符串轉換為整數,就可以了。

var bid = parseInt(req.params.bid);

暫無
暫無

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

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