存储和检索小对象(node.js)的选项是必需的数据库吗?

时间:2018-03-22 11:13:46

标签: json node.js database object

我正在构建我的第一个live node.js网络应用程序。它包含一个表单,接受有关我的客户当前库存的数据。提交时,会生成一个对象并将其保存到当前库存数组中。然后该库存将永久显示在其网站上,直到修改或删除该条目为止。

任何时候都不可能存储超过20个对象,这些对象每周只会更新一次。我不确定是否有必要使用MongoDB存储这些,或者是否有更简单的更合适的替代方案。也许这些对象可以存储到JSON文件中?或者这对页面加载时间有太大影响吗?

3 个答案:

答案 0 :(得分:2)

您可能存储在JSON文件中,甚至可能存储在Redis等各种缓存中,但我仍然认为MongoDB是您对实时网站的最佳选择。

将某些内容存储在JSON文件中是不可扩展的,因此如果您最终存储的数据比最初计划的要多得多(这种情况经常发生),您可能会发现服务器硬盘驱动器上的存储空间不足。此外,如果您最终扩展并将应用程序置于负载均衡器之后,则需要确保每台服务器上都存在该JSON文件的匹配副本。此外,更新JSON文件时很容易遇到竞争条件。如果两个进程同时尝试更新文件,则可能会丢失数据。从技术上讲,JSON文件可以工作,但不推荐使用。

存储在内存中(即)Redis具有类似的含义,即数据仅在该服务器上可用。此外,数据不是永久性的,因此如果您的服务器因任何原因重新启动,您将丢失存储在内存中的内容。

出于所有意图和目的,MongoDB是您最好的选择。

答案 1 :(得分:1)

唯一可以确定的方法是通过负载测试对其进行测试。但是,无论如何,当您在提供网页时可能从文件系统中读取html和js文件时,读取一些json文件的额外负载应该不是问题。

答案 2 :(得分:1)

如果你想采用更简单的方式,即JSON文件使用nedb API,这也很快。