问题标签 [nedb]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
155 浏览

javascript - 如何在不重新加载 DOM 的情况下保持表单更新?

我有一个可以完美运行并保持表单更新的应用程序,但前提是我重新加载 DOM。当有人单击提交按钮时,是否可以使用新输入或用户修改的数据更新表单而无需重新加载?

服务器代码:

数据处理器:

EJS 文件:

0 投票
3 回答
4009 浏览

node.js - 我如何在 nedb 中拥有自动增量字段?

我想拥有像关系或目标数据库这样的自动增量字段,所以我需要一个_id具有自动设置字段值的整数字段,值应该是最后一个记录_id值,如下所示:

数据:

删除最后一条记录:

添加新记录:

我在我的数据存储中添加了一个函数并计算 _id 和加 1 的最大值max(_id)+1并设置为字段值,但这里有问题:

当我们在关系数据库中使用自动增量字段时,它就像我说的那样工作,并且在您remove last record保留删除的记录号并且新插入的记录继续增加但以我的方式表示新记录的删除记录的 _id 之后。

我的代码是:

0 投票
1 回答
5620 浏览

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

我们正在开发一个应用程序,该应用程序将通过Electron以基于 Web 和跨平台桌面解决方案的形式提供。

因客户要求,桌面客户端无法使用“云端”存储数据;所有数据都应该存储在本地机器中,或者更好的是,用户应该可以选择将数据库/数据文件保存在外部硬盘上,以便同一本地网络上的另一个用户可以使用相同的数据文件。

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

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

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

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

0 投票
1 回答
1293 浏览

nativescript - 找不到模块:“crypto”,相对于:/app/tns_modules

我尝试在 NativeScript 应用程序中使用 NeDB,但可以这样做......它会抛出错误说:

Blockquote java.lang.RuntimeException:无法创建应用程序 com.tns.NativeScriptApplication:com.tns.NativeScriptException:找不到模块:“crypto”,相对于:/app/tns_modules/ 在 android.app.ActivityThread.handleBindApplication(ActivityThread .java:4710) 在 android.app.ActivityThread.-wrap1(ActivityThread.java) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1405) 在 android.os.Handler.dispatchMessage(Handler.java:102 ) 在 android.os.Looper.loop(Looper.java:148) 在 android.app.ActivityThread.main(ActivityThread.java:5417) 在 java.lang.reflect.Method.invoke(Native Method) 在 com.android。 internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 原因:com.tns.NativeScriptException:找不到模块:“加密”,相对于:/app/tns_modules/ 在 com.tns.Module.resolvePathHelper(Module.java:220) 在 com.tns.Module.resolvePath(Module.java:60) 在 com.tns.Runtime.runModule(Native Method)在 com.tns.Runtime.runModule(Runtime.java:241) 在 com.tns.Runtime.run(Runtime.java:235) 在 com.tns.RuntimeHelper.initRuntime(RuntimeHelper.java:129) 在 com.tns。 NativeScriptApplication.onCreate(NativeScriptApplication.java:13) 在 android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1013) 在 android.app.ActivityThread.handleBindApplication(ActivityThread.java:4707) ... 还有 8 个initRuntime(RuntimeHelper.java:129) 在 com.tns.NativeScriptApplication.onCreate(NativeScriptApplication.java:13) 在 android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1013) 在 android.app.ActivityThread.handleBindApplication(ActivityThread.java :4707) ... 还有 8 个initRuntime(RuntimeHelper.java:129) 在 com.tns.NativeScriptApplication.onCreate(NativeScriptApplication.java:13) 在 android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1013) 在 android.app.ActivityThread.handleBindApplication(ActivityThread.java :4707) ... 还有 8 个

我首先做了 npm install nedb --save 并要求它

我该如何解决?

0 投票
2 回答
674 浏览

database - 更新 nedb 中的特定数组元素

在 nedb 中,我在文档中有一个数组字段。如何在任何索引处更新数组元素?

例如,

我想修改第二个元素并将数组设置为['mango','pear','banana'].

如何使用db.update

0 投票
0 回答
1664 浏览

reactjs - React + Redux + Electron 桌面应用,如何将数据保存到本地文件

正如标题所说,我希望我的 react-redux 应用程序与 node-electron 一起运行,以便在触发很少的操作时保存一些数据。

尝试1:

所以我首先尝试了 nedb,但它实际上并没有创建任何本地数据库文件,而只是将数据保存在内存中,当我关闭电子窗口或重新启动它时,我会丢失数据。我在 redux 操作文件中初始化 nedb 数据存储,所以我认为它可能在主电子应用程序的子进程中被调用,但我不知道如何解决这个问题。

尝试2:

在我尝试了具有相同设置的简单 json 文件模块后,当文件保存操作被触发时,它会尝试使用 jsonfile.writeFile 方法将有效负载保存到 json 文件中,但它也会在此处失败,并出现“writeFile”不是方法的错误。它与我的 node-express 应用程序完美配合,但在 react-electron 设置中失败。

尝试3:

我尝试了 redux-persist 和 nedb-persist 库,但我认为它们还将数据保存在本地存储中,而不是实际保存到文件系统中,因此它们在重新启动后会丢失数据......

以上 2 个问题的任何解决方案或将数据保存在本地 json 文件或任何其他离线数据库解决方案(如 nedb)上的新方法都对我有用。

0 投票
2 回答
2156 浏览

node.js - nedb:如何从 find() 函数中获取文档?

我将nedb模块封装在自定义对象中:

我想定义自己的函数来获取数据库中的所有对象:

但是,变量“items”不能分配给变量“docs”,并且始终为“null”。我意识到这是由 JavaScript 的异步特性引起的。
但是我怎样才能得到变量“docs”呢?

0 投票
1 回答
2809 浏览

node.js - NeDB + 打字稿

如何使用打字稿类语法获取带有 NeDB 的数据存储?

我应该在哪里创建和实例化我的数据存储?

0 投票
2 回答
1427 浏览

database - 需要一个可处理约 1Gb 数据集的嵌入式 NoSQL 数据库,并保存在磁盘上

我正在构建一个 Electron 应用程序,我需要为此选择一个可嵌入的 NoSQL 数据库。事实上,这个数据库应该包含存储在 ArangoDB 远程后端的本地数据子集。我一直在互联网上搜索了很多,但到目前为止未能收敛到最终的候选人。我希望有人可以根据经验给我建议。

典型的数据集可能有大约数万个文档,我可以想象随着时间的推移该集合将达到大约 1Gb 的情况。此外,我需要二级索引。

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

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

另一方面,我尝试关注关于他们的索引的几个对话,其中 NeDB 似乎在他们的文档中建议它们一旦构建就被持久化到磁盘(https://github.com/louischatriot/nedb#indexing),其中然后似乎再次被 LinvoDB 否定(对不起,我在打开的大量选项卡中丢失了许多引号/来源......),表明索引将在启动时从头开始构建。(而且我也可能完全误解了 NeDB 的文档。)

基本上,我需要的是一个适用于 Electron 应用程序的 JS 数据库解决方案,它可能包含“相当多”但不是“大量”数据。应用程序的加载时间应该是合理的(即,不妨碍使用),同时是响应式的(即,数据库应该包含二级索引)并尽可能尊重用户的资源。

问题:

  1. 有没有人对上述或其他嵌入式 NoSQL 数据库有任何经验,可以为我的用例推荐这些或其他数据库中的任何一个?
  2. 如果每次我启动应用程序时确实需要从头开始重建 LinvoDB 的索引,那会不会对性能造成重大影响(加载时间大约为秒)?(当然我必须对此进行基准测试......)
  3. ArangoDB 不可嵌入,但也许我应该考虑将它作为服务部署在我的原生应用程序旁边?此链接NoSQL 数据库:ArangoDB似乎建议开发人员自己不要阻止这一点。这会矫枉过正和/或对用户不友好吗?性能受到打击?

任何建议将不胜感激。

0 投票
1 回答
45 浏览

node.js - 如何通过仅保留更改点来减少集合?

我有一个下面的集合示例。该数据在 cron 作业中每 20 分钟从端点提取一次。

我想丢弃任何不显示empty(以及因此)变化的文档(行ready)。我的目标是在这个集合中找到这些值发生变化的最新时间戳。

更好地说明,我想将它减少到值改变的地方:

我可以在 MongoDB 查询中执行此操作吗?还是我最好使用 JavaScript 过滤器功能?