标签: nedb

如何使用typescript获取应用程序运行的路径?

我正在尝试用电子,angular2,打字稿和neDB创建一个桌面应用程序.为了能够用neDB创建一个'文件'数据库我想要我的项目的路径.我怎么能用打字稿来得到它?

typescript nedb electron

12
推荐指数
3
解决办法
3万
查看次数

用于Electron应用程序的本地基于文件的数据库

我们正致力于通过Electron提供基于Web和跨平台桌面解决方案的应用程序.

由于客户的要求,桌面客户端无法利用"云"来存储数据; 所有数据都应存储在本地计算机中,或者更好的是,用户应该可以选择将数据库/数据文件保存在外部HDD上,以便同一本地网络上的另一个用户可以使用相同的数据文件.

我们一直在研究NeDB,PouchDB等,但所有这些都使用浏览器本身的Web SQL或IndexedDB来存储数据.从理论上讲,NeDB可以使用文件系统,但这似乎只适用于Node Webkit应用程序.

另一种选择当然是MongoDB,但它需要在Web服务器上设置站点.看看我们的用户如何在自己的机器上设置它,这将仅适用于一个用户,但会使他们很难共享数据(注意:假设用户几乎没有技术知识).

  • 有没有办法强制NeDB将数据保存在文件而不是浏览器内的数据库中?
  • 或者,是否有人知道基于文件的紧凑型数据库与电子/节点配合良好?

我们最好使用NoSQL数据库,但也会考虑基于文件的SQL数据库的选项.

mongodb pouchdb nedb electron

9
推荐指数
1
解决办法
4344
查看次数

使用非正则表达式调用NeDB正则表达式运算符

我正在尝试使用正则表达式搜索字符串,如下所示:

db.find({ consignee: { $regex: /test/ } }, function (err, docs) {

});
Run Code Online (Sandbox Code Playgroud)

但这是在抛出错误

错误:使用非正则表达式调用$ regex运算符

nedb

7
推荐指数
0
解决办法
235
查看次数

需要一个可嵌入的NoSQL数据库来处理~1Gb数据集,这些数据集持久存储在磁盘上

我正在构建一个Electron应用程序,我需要选择一个可嵌入的NoSQL数据库.实际上,该数据库应该包含存储在ArangoDB远程后端上的本地数据子集.我一直在互联网上搜索很多,但到目前为止还没有收敛到最终的候选人.我希望有人能从经验告诉我.

典型的数据集可能达到数万个文档,我可以想象这个集合随着时间的推移会达到~1Gb的情况.此外,我需要二级索引.

我看过PouchDB,UnQlite,LokiJS,LevelDB,NeDB,LinvoDB ......

最后,NeDB和LinvoDB似乎是合理的候选者,具有持久性到磁盘(类似SQlite),其中NeDB无法处理大型数据集; LinDBDB(NeDB的一个分支)似乎能够处理的东西.LinvoDB不会将整个数据库加载到内存中,但默认情况下会将"所有内容"编入索引,并将其保留在内存中.

另一方面,我试图跟踪关于他们的索引的几个对话,其中NeDB似乎在他们的文档中建议它们被保存到磁盘(https://github.com/louischatriot/nedb#indexing),一旦建成,然后再次出现被LinvoDB否定(对不起,我在大量的标签打开中丢失了许多引用/来源......),建议索引在发布时从头开始构建.(也可能是我误解了NeDB的文档.)

基本上,我需要的是一个针对Electron应用程序的JS数据库解决方案,它可能包含"可观的"但不是"巨大的"数据量.该应用程序的加载时间,应该是合理的(即不劝阻使用),同时响应(即,数据库应包括二级指标),并尊重用户的资源,尽可能多地.

问题:

  1. 有没有人有任何上述或其他嵌入式NoSQL数据库的经验,通过这些数据库可以推荐任何这些或其他数据库用于我的用例?
  2. 如果确实每次启动应用程序时都需要从头开始重建LinvoDB的索引,那么这可能是一个重要的性能损失(加载时间为几秒)?(当然我必须对此进行基准测试...)
  3. ArangoDB不可嵌入,但也许我应该考虑将其作为服务与我的原生应用程序一起部署?这个链接NoSQL数据库:ArangoDB似乎暗示开发人员自己不会劝阻这个.这会是矫枉过正和/或用户友好吗?表现受到了打击?

任何建议真的很感激.

database nosql embeddable nedb electron

5
推荐指数
1
解决办法
1012
查看次数

在电子渲染器过程中将nedb坚持到磁盘(Webpack / Electron / nedb配置问题)

问题

我正在尝试在Electron渲染器过程中使用名为nedb的纯JS数据库。它使用browser领域package.json要交换基于浏览器的存储系统。这导致我的数据库实际上未持久保存到文件中。

背景

我使用Next.js作为我的视图框架,并且"target": "electron-renderer"为渲染线程配置了它的Webpack 。即使渲染器进程应有权访问浏览器和Node API,这显然也会导致Webpack处理那些浏览器指令。此行为并未真正记录,因此我不知道如何覆盖它。

我尝试过的

我已经确认,如果我手动编辑browser的本地副本上的字段node_modules/nedb/package.json,则问题将消失。

作为临时的解决方法,我已经指出了自己的能力nedb。但这是非常不令人满意的。

其他研究

奇怪的是,这似乎对电子战来说不是问题,电子战的文档明确演示nedb了渲染过程中对电子战的使用。实际上,该框架似乎确实"target": "electron-renderer"其Webpack config中使用

是否可以通过Webpack配置解决此问题?

javascript webpack nedb electron next.js

5
推荐指数
1
解决办法
361
查看次数

nedb方法更新和删除会创建一个新条目,而不是更新现有条目

我正在使用nedb,我正在尝试通过匹配它来更新现有记录ID,并更改title属性.会发生什么,创建一个新记录,旧记录仍然存在.我尝试了几种组合,并尝试谷歌搜索,但搜索结果很少.

var Datastore = require('nedb');
var db = {
    files: new Datastore({ filename: './db/files.db', autoload: true })
};

db.files.update(
  {_id: id}, 
  {$set: {title: title}}, 
  {}, 
  callback
);
Run Code Online (Sandbox Code Playgroud)

执行删除时更加疯狂,再次添加新记录,但这次记录有一个奇怪的属性: {"$$deleted":true,"_id":"WFZaMYRx51UzxBs7"}

这是我正在使用的代码:

db.files.remove({_id: id}, callback);
Run Code Online (Sandbox Code Playgroud)

javascript node.js express-4 nedb nw.js

4
推荐指数
1
解决办法
3579
查看次数

levelDB 还会损坏数据吗?

我正在编写一个小型 NodeJS 应用程序,我需要某种数据库。LevelDB ( LevelUP ) 和NeDB似乎是最受欢迎的,所以选择哪个......

维基百科 2016 年 11 月 18 日报道,LevelDB 经常损坏数据。

LevelDB 因不可靠而广受关注,其管理的数据库容易损坏。[13][14][15][16][17][18][19][20] 对过去版本的LevelDB[21][22]的学术研究发现,在某些文件系统下,这些版本的LevelDB中存储的数据可能会在系统崩溃或断电后变得不一致。LevelDB 损坏非常普遍,因此必须将损坏检测内置到使用它的应用程序中。[23]

问题

这是过去的事了,不再是问题了吗?

javascript node.js leveldb nedb

4
推荐指数
1
解决办法
1822
查看次数

Heroku 上的 NedB 不保留 db 文件

我在我的 nodejs 应用程序中使用了 nedb,我的第一个代码是:

var Datastore = require('nedb');
var db = new Datastore({ filename: 'users.db', autoload: true });
db.persistence.setAutocompactionInterval(5);
Run Code Online (Sandbox Code Playgroud)

本地主机一切正常,数据库将在我的 db 文件中保存每一个厚。(服务器重启后保存的数据库)但在heroku服务器中,数据库为空!!!我认为数据库保存在内存中!(不在我的数据库文件中!!)为什么?!我想将我的数据库保存在 Heroku 服务器的 db 文件中!

database heroku node.js nedb

4
推荐指数
1
解决办法
1108
查看次数

如何在nodejs中构建模型(ODM)以与nedb一起使用

我正在寻找一个可以在NodeJs-Express中与Nedb一起使用的ODM模块.是否有可能将MongooseWaterline模式与nedb结合使用进行验证?Mongoose和Waterline没有为nedb提供官方适配器.

目前对性能的要求非常低,我正在研究覆盆子pi的项目,因此我想坚持使用nedb(或类似的基于文件的nosql数据库).

orm nosql node.js express nedb

3
推荐指数
1
解决办法
2216
查看次数

Angular 2(全局变量):如何在Typescript代码中访问index.html中定义的变量?

我有以下代码:

 <script src="node_modules/nedb/browser-version/out/nedb.min.js"> </script>

 <script>
 var server = new Nedb({filename: 'someFile2', autoload: true});
 </script>
Run Code Online (Sandbox Code Playgroud)

Nedb持久数据库已创建。

我只想访问应用程序代码中的服务器变量,例如MyCmp.ts中的。我该怎么做呢?

global nedb angular

3
推荐指数
1
解决办法
2399
查看次数