У меня есть следующие данные в nedb.Обновить строку в nedb
["UserId":"1446943507761","UserName":"xxx","link":"xxx.html","taskDone":"false","id":14,"_id":"fdaaTWSxloQZdYlT"]
["UserId":"1446943507761","UserName":"xxx","link":"xxx.html","taskDone":"false","id":1,"_id":"fzh2cedAXxT76GwB"]
["UserId":"1446943507761","UserName":"xxx","link":"xxx.html","taskDone":"false","id":0,"_id":"k4loE7XR5gioQk54"]
Я пытаюсь обновить строку с id 0 и установить значение taskDone в значение true. Я использую следующий запрос, чтобы установить значение true:
db.taskmap.update({ _id: "k4loE7XR5gioQk54", UserName:"xxx" }, { $set: { taskDone: "true"} }, function (err, numReplaced) {
console.log("replaced---->" + numReplaced);
});
Он обновляет значение, но он обновляется как новая строка. Он в основном вставляет новую строку с одинаковыми значениями, за исключением значения taskdone как true. Он не удаляет существующие данные. Следовательно, в итоговой таблице данных после обновления я получаю строки буфера для id 0 со всеми значениями, кроме taskDone. Я не уверен, что я делаю что-то неправильно. Будет полезно, если кто-нибудь может сказать мне правильный способ обновления стоимости.
Привет большое спасибо за предложение. Я попробовал это, но он по-прежнему вводит новую запись вместо обновления существующего. – user3202499
Единственное различие заключается в использовании db direct. Это может быть проблема? – deamentiaemundi
Привет, спасибо за предложение, я мог заставить его работать без db direct ... Я понял, что я использовал _id для доступа к строке, которая генерируется nedb для назначения уникального ключа для каждой строки. Я прекратил использовать _id для доступа к строке, и он отлично работает, хотя я не знаю причины. – user3202499