JavaScript понимает NeDB (запрос на обновление) - PullRequest
0 голосов
/ 30 сентября 2019

Я изучаю базу данных js под названием NeDB (Node.js) https://github.com/louischatriot/nedb
Запутался при обновлении документов.

База данных перед обновлением

{"p_id":"1","rank":"0","_id":"fXBIrW8pp8y5M9zg"}
{"$$indexCreated":{"fieldName":"p_id","unique":false,"sparse":false}}

Код JS

db.update({p_id: "1"}, {$set: {rank: "1"}}, {});
db.update({p_id: "1"}, {$set: {rank: "1"}}, {});

База данных после обновления

{"p_id":"1","rank":"0","_id":"fXBIrW8pp8y5M9zg"}
{"$$indexCreated":{"fieldName":"p_id","unique":false,"sparse":false}}
{"p_id":"1","rank":"1","_id":"fXBIrW8pp8y5M9zg"}
{"p_id":"1","rank":"1","_id":"fXBIrW8pp8y5M9zg"}

Перезапуск программы

{"p_id":"1","rank":"1","_id":"fXBIrW8pp8y5M9zg"}
{"$$indexCreated":{"fieldName":"p_id","unique":false,"sparse":false}}

Итак, nedb не изменяет документы, а создает новый. Боюсь представить, что будет, если будет много пользователей и запросов на обновление. Когда я перезапускаю код, он удаляет совпадения, и БД выглядит нормально. Просто хотите узнать, все ли в порядке или я что-то не так делаю?

1 Ответ

0 голосов
/ 30 сентября 2019

Возможно, я ошибаюсь, но, похоже, вы здесь не на месте. В вашей базе данных p_id поле имеет строковое значение "1", но для условия обновления вы используете число 1. Пожалуйста, измените 1 на "1" в вашем коде и повторите попытку

...