0
我在更新mongodb中的名稱時遇到問題。這個名字是首先由一個變量,用戶保存和傳遞到這樣的功能:putAjax(editName)然後它去功能在這裏:無法使用PUT在節點快速中更新mongo中的名稱
function putAjax(editName) {
$.ajax({
type: "PUT",
url: "/items/"+ editName,
data: editName,
dataType: 'json',
})
.done(function(result) {
console.log("result:", result);
console.log("data successfully saved:");
})
.fail(function(jqXHR, error, errorThrown) {
console.log(jqXHR);
console.log(error);
console.log(errorThrown);
});
};
我可以CONSOLE.LOG(結果)和我可以看到編輯的名稱,所以我認爲編輯發生了。最後,它使呼叫app.put在服務器上:
app.put('/items/:name', function(req, res) {
Item.find(req.params.name, function(err, items) {
if (err) {
return res.status(404).json({
message: 'Internal Server Error'
});
}
Item.findOneAndUpdate({
name: req.params.name
}, {
$set: {
name: req.params.name
}
}, { new: true },
function() {
res.json(items);
});
});
});
這是更新似乎不能發生。當我使用mongo shell時,我仍然擁有相同的名稱,而不是編輯的名稱。令人困惑的部分是,爲什麼console.log(result)顯示我編輯後的名稱。我真的很感激任何幫助。謝謝。
感謝指出了這一點。我一直在這一整天,我無法弄清楚如何傳遞原始值在數據庫中搜索它。它會被傳入嗎? app.put( '/項目/:名稱',函數(REQ,資源,數據) 和我在客戶端AJAX是: VAR使用oldName = { 「名」:使用oldName}; $。阿賈克斯({ 類型: 「PUT」, URL: 「/項目/」 +使用oldName, 數據:使用oldName, 數據類型: 'JSON', }) – marcusk7
我已經更新了我的代碼示例答案 –
丹。 ,謝謝,它現在正在工作!但爲了防止其他人可能正在尋找類似的東西,對於我的情況,我必須更改以下代碼才能使其工作:Item.findOneAndUpdate({name:req.params.id} ,{$ set:{name:data.name}}。 – marcusk7