Mongodb:如何将数据库与新数据进行比较

时间:2015-11-14 10:22:54

标签: node.js mongodb

每周我都会收到一份新的源数据副本(8500,并且正在增长,记录大约和一个Mongo用作_id的id字段)并且我想查找(并保存,同时保留旧的数据)更新的信息(可能每月约30次更改/添加)。我正在努力找出最好的方法。

我的第一个想法是,对于新数据中的每个条目,使用该_id获取数据库条目,比较并更新已更改的数据。但是这会导致8500个异步调用通过网络(到mongolab)+ 30 upserts,需要保存新的/更改的数据。

因此,另一种方法是在一开始就下载所有内容。但后来我最终得到了Mongo的一个数组,每次都需要Array.find来获得与新数据匹配的元素。

是否有Mongo命令将.find({})的结果作为_id键入的Javascript对象返回?或者,将原始数组从Mongo中取出并将其转换为有意义吗?我自己到一个对象

1 个答案:

答案 0 :(得分:0)

我会存储: id +版本+日期+数据

每次更新:

  1. 转储prod DB以供本地使用
  2. 在本地mongoDB中脱机工作(因为您不想通过Web启动9000查询)
  3. 每行
  4.  将数据与mongo数据进行比较  如果修改== true,将存储一个新的/第一个(id +版本) 否则跳过;
  5. 转储您的本地数据库
  6. 安装转储到生产环境
  7. mongodb doc dump