JavaScript了解NeDB(更新查询)

问题描述 投票:0回答:1

我正在学习名为NeDB(Node.js)的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不会修改文档,而是创建一个新文档。恐怕无法想象如果有很多用户和更新请求,将会发生什么。当我重新启动代码时,它将删除匹配项,并且数据库看起来还可以。只想知道是否还可以,或者我做错了什么?

javascript node.js database node-modules nedb
1个回答
0
投票

我可能是错的,但看起来您在这里放错了类型。在数据库中,p_id字段的字符串值为"1",但对于update子句,您使用的是数字1。请在您的代码中将1更改为"1",然后重试

© www.soinside.com 2019 - 2024. All rights reserved.