内容简介:有时候做一些小项目,不想使用mysql等重型武器,就想用一些小而美的文件类型数据库。意思就是把不大的数据了都存到文件中,对于文件进行更新和读取。我在之前也介绍过6款非关系型小型数据库。这6款数据库中,我首推【nedb】,很强大,功能是最全的。今天在使用中碰到一个难以理解的问题,一番搜索,才可以茅塞顿开。
缘起
有时候做一些小项目,不想使用 mysql 等重型武器,就想用一些小而美的文件类型数据库。意思就是把不大的数据了都存到文件中,对于文件进行更新和读取。
我在之前也介绍过6款非关系型小型数据库。这6款数据库中,我首推【nedb】,很强大,功能是最全的。
今天在使用中碰到一个难以理解的问题,一番搜索,才可以茅塞顿开。
问题
我在使用nedb update某一行数据时,始终会在文档末尾插入一行新数据。我把nedb api用法看来看去,也没找到自己代码哪里有问题。
后来咨询阅读文档其他部分。才发现了nedb 对【持久化】的解释。
解释
NeDB的持久性使用附加文本的方法,这意味着出于性能原因,所有更新和删除实际上都会导致在数据文件末尾添加行。每次在应用程序中加载每个数据库时,数据库都会自动压缩(即以每个文档一行的格式放回)。
什么意思呢?
就是每次你执行update 和 remove操作时,nedb都会在文件末尾新增加一行相应数据,一开始我想当然的认为这样总是会产生至少2条以上的重复数据。
事实不是:在你再去查询某条数据时,nedb会自动压缩数据,保证你查询出来的数据没有重复的。
我马上代码试了下,果然,之前更新数据时,在文档末尾新增的数据,都不见了,相关属性值都被合并到之前已有的对于某条记录里去了。
以上所述就是小编给大家介绍的《数据库nedb在update更新数据时,为什么总是会重新插入一条数据?》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 定时插入数据测试脚本
- 【数据结构与算法】—— 插入排序
- c# 插入数据效率测试(mongodb)
- Python多线程批量插入数据小结
- php-在mysql里批量插入数据
- spark-sql 创建表 插入数据
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
算法竞赛入门经典(第2版)
刘汝佳 / 清华大学出版社 / 2014-6-1 / CNY 49.80
《算法竞赛入门经典(第2版)》是一本算法竞赛的入门与提高教材,把C/C++语言、算法和解题有机地结合在一起,淡化理论,注重学习方法和实践技巧。全书内容分为12 章,包括程序设计入门、循环结构程序设计、数组和字符串、函数和递归、C++与STL入门、数据结构基础、暴力求解法、高效算法设计、动态规划初步、数学概念与方法、图论模型与算法、高级专题等内容,覆盖了算法竞赛入门和提高所需的主要知识点,并含有大量......一起来看看 《算法竞赛入门经典(第2版)》 这本书的介绍吧!