2016-12-31 91 views
0

在條件books.update({「id」:{$ eq:bid}},{$ set:{「status」:login}} ... 當我使用變量出價它不起作用但如果我把smth像books.update({「id」:{$ eq:1}},{$ set:{「status」:login}}它工作得很好,我必須在我的項目中使用變量。Expressjs mongodb更新查詢

節點代碼的情況下,

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> 
+0

完美的作品謝謝你。 – quimak

回答

0

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

請求參數是字符串。將字符串轉換爲整數,你應該沒問題。

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

也許req.params.bid給你一個字符串數字,因此它不匹配。 id字段可能正在查找1,但您會在變量出價中發送「1」。

嘗試將出價轉換爲數字,然後檢查。

bid = parseInt(bid,10);