在MEAN + Mongoose堆栈中加载批量数据的位置?

时间:2013-12-06 05:42:09

标签: node.js mongodb angularjs express mongoose

哪个MEAN堆栈级别最好加载批量数据?我有大约200到800个2-3种不同类型的条目(即它们需要2到3种不同的Mongoose模式)。

以下是加载这些数据的选项(随意指出任何误解,我是新的):

  1. 客户端:角度级别
    • 自动化大量用户输入
  2. 服务器端:Nodejs + Express + Mongoose
    • 在Mongoose中定义架构,创建对象,保存每个
  3. 数据库方面:Mongodb
    • 使用数据创建一个json文件,并将其直接导入Mongo:
      mongoimport -d db_name -c collection_name --jsonArray --file jsonfilename.json
  4. 第三种方式是最纯粹的,也许是最快的,但我不知道在如此低的水平上做它是否合适。

    哪一个最好?如果没有最佳选择,那么每种选择的优点和缺点是什么?

2 个答案:

答案 0 :(得分:4)

这取决于您的批量加载以及是否需要进行验证。

  1. 客户端:角度级别
    • 如果您要求用户进行批量加载,并且需要一些您自己选择的人类可读错误消息
  2. 服务器端:Nodejs + Express + Mongoose
    • 您可以批量导入文件
    • 公开REST端点以触发批量导入数据
    • 您可以使用Mongoose进行验证(请参阅validation in mongoose
    • Mongoose支持通过一次调用创建多个文档(请参阅Model.create
  3. 数据库方面:Mongodb
    • 快速,无需代码
    • 没有灵活的验证
  4. 我会选择最适合您对批量数据导入的理解的选项:如果它需要一个UI,您的选项是1与2结合,如果您将此视为“业务”逻辑的一部分并且您正在导入来自外部文件的数据或希望其他系统触发导入您的选项为2,如果您将其视为导入数据的一次性操作,或者您不需要任何与导入相关的验证或逻辑,则最佳选择是选项3

答案 1 :(得分:0)

通过客户端加载它将要求您编写更多代码来处理导入并发送到后端,然后在Node.js中处理它。

所有这些方法中最快的方法是使用mongoimport直接导入数据。