数据库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更新数据时,为什么总是会重新插入一条数据?》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

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

x86汇编语言

x86汇编语言

李忠、王晓波、余洁 / 电子工业出版社 / 2013-1 / 56.00元

《x86汇编语言:从实模式到保护模式》采用开源的NASM汇编语言编译器和VirtualBox虚拟机软件,以个人计算机广泛采用的Intel处理器为基础,详细讲解了Intel处理器的指令系统和工作模式,以大量的代码演示了16/32/64位软件的开发方法,介绍了处理器的16位实模式和32位保护模式,以及基本的指令系统。 《x86汇编语言:从实模式到保护模式》是一本有趣的书,它没有把篇幅花在计算一......一起来看看 《x86汇编语言》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

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

Base64 编码/解码

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

UNIX 时间戳转换