数据库nedb在update更新数据时,为什么总是会重新插入一条数据?

栏目: Node.js · 发布时间: 5年前

内容简介:有时候做一些小项目,不想使用mysql等重型武器,就想用一些小而美的文件类型数据库。意思就是把不大的数据了都存到文件中,对于文件进行更新和读取。我在之前也介绍过6款非关系型小型数据库。这6款数据库中,我首推【nedb】,很强大,功能是最全的。今天在使用中碰到一个难以理解的问题,一番搜索,才可以茅塞顿开。
搬*瓦*公 电信直连CN2优质专线 512MB 内存,20G SSD,1T 流量,190元每年

缘起

有时候做一些小项目,不想使用 mysql 等重型武器,就想用一些小而美的文件类型数据库。意思就是把不大的数据了都存到文件中,对于文件进行更新和读取。

我在之前也介绍过6款非关系型小型数据库。这6款数据库中,我首推【nedb】,很强大,功能是最全的。

今天在使用中碰到一个难以理解的问题,一番搜索,才可以茅塞顿开。

问题

我在使用nedb update某一行数据时,始终会在文档末尾插入一行新数据。我把nedb api用法看来看去,也没找到自己代码哪里有问题。

后来咨询阅读文档其他部分。才发现了nedb 对【持久化】的解释。

解释

NeDB的持久性使用附加文本的方法,这意味着出于性能原因,所有更新和删除实际上都会导致在数据文件末尾添加行。每次在应用程序中加载每个数据库时,数据库都会自动压缩(即以每个文档一行的格式放回)。

什么意思呢?

就是每次你执行update 和 remove操作时,nedb都会在文件末尾新增加一行相应数据,一开始我想当然的认为这样总是会产生至少2条以上的重复数据。

事实不是:在你再去查询某条数据时,nedb会自动压缩数据,保证你查询出来的数据没有重复的。

我马上代码试了下,果然,之前更新数据时,在文档末尾新增的数据,都不见了,相关属性值都被合并到之前已有的对于某条记录里去了。


以上所述就是小编给大家介绍的《数据库nedb在update更新数据时,为什么总是会重新插入一条数据?》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

The Web Designer's Idea Book, Vol. 2

The Web Designer's Idea Book, Vol. 2

Patrick McNeil / How / 2010-9-19 / USD 30.00

Web Design Inspiration at a Glance Volume 2 of The Web Designer's Idea Book includes more than 650 new websites arranged thematically, so you can easily find inspiration for your work. Auth......一起来看看 《The Web Designer's Idea Book, Vol. 2》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换