【问题标题】:Where to load bulk data in the MEAN+Mongoose stack?在 MEAN+Mongoose 堆栈中的哪里加载批量数据?
【发布时间】:2013-12-06 14:23:13
【问题描述】:

在哪个 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

第三种方式是最纯粹的,也许是最快的,但我不知道在这么低的水平上这样做是否好。

哪个是最好的?如果没有最优选择,各自的优缺点是什么?

【问题讨论】:

    标签: node.js mongodb angularjs express mongoose


    【解决方案1】:

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

    1. 客户端:角度级别
      • 如果您要求用户进行批量加载并需要一些人类可读的错误消息,您可以选择
    2. 服务器端:Nodejs + Express + Mongoose
      • 您可以从文件批量导入
      • 公开 REST 端点以触发数据的批量导入
      • 您可以使用 Mongoose 进行验证(请参阅 validation in mongoose
      • Mongoose 支持一次调用创建多个文档(参见Model.create
    3. 数据库端:MongoDB
      • 快速,无需代码
      • 没有灵活的验证

    我会选择最适合您对批量数据导入的理解的选项:如果需要 UI,您的选项是 1 和 2 组合,如果您将其视为“业务”逻辑的一部分并且您正在导入来自外部文件的数据或希望其他系统触发该导入您的选项是 2,如果您将其视为导入数据的一次性操作,或者您不需要任何与导入相关的验证或逻辑,则最佳选择是选项 3 .

    【讨论】:

    • 非常感谢您的详细回答!我倾向于#2。您是否介意在 #2 的前两个项目符号上添加更多详细信息:“您可以从文件批量导入。公开 REST 端点以触发批量导入数据”?非常感谢!
    • 从文件导入很清楚,例如可以读取 json 文件并使用 mongodb 驱动程序将条目插入 mongodb。您还可以在 express 中创建一个路由处理程序,该处理程序接受包含要导入的数据的发布请求
    • 澄清一下,对于“您可以从文件批量导入”这意味着通过 mongodb 导入,即使该项目符号位于“Nodejs + Express + Mongoose”下?
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2016-04-20
      • 2016-01-06
      • 2016-11-06
      • 1970-01-01
      • 2017-01-06
      • 1970-01-01
      • 1970-01-01
      • 2015-01-16
      相关资源
      最近更新 更多