JavaScript了解NeDB(更新查询)
我正在学习名为NeDB(Node.js)的js数据库。
更新前的数据库
{"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不会修改文档,而是创建一个新文档。恐怕无法想象如果有很多用户和更新请求,将会发生什么。当我重新启动代码时,它将删除匹配项,并且数据库看起来还可以。只想知道是否还可以,或者我做错了什么?
回答如下:我可能是错的,但看起来您在这里放错了类型。在数据库中,p_id
字段的字符串值为"1"
,但对于update子句,您使用的是数字1
。请在您的代码中将1
更改为"1"
,然后重试
JavaScript了解NeDB(更新查询)
我正在学习名为NeDB(Node.js)的js数据库。
更新前的数据库
{"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不会修改文档,而是创建一个新文档。恐怕无法想象如果有很多用户和更新请求,将会发生什么。当我重新启动代码时,它将删除匹配项,并且数据库看起来还可以。只想知道是否还可以,或者我做错了什么?
回答如下:我可能是错的,但看起来您在这里放错了类型。在数据库中,p_id
字段的字符串值为"1"
,但对于update子句,您使用的是数字1
。请在您的代码中将1
更改为"1"
,然后重试