Ido*_*ohn 5 deployment synchronization mongodb
我们有一个包含对象集合的开发服务器。这些对象的实际积累是一个持续的过程,该过程在此本地dev服务器上运行标记,验证等整个过程。一旦这些对象准备好用于生产,就将它们添加到生产数据库,从那时起,它将在计算中使用它们。
我正在寻找一种将增量(新对象)简单地添加到生产数据库中,同时保留所有其他集合和旧对象在同一集合中的方法。到目前为止,我们一直使用MySql,因此此过程仅涉及运行数据库结构和数据同步(为此,我们使用了Navicat)。我们现在正在迁移到MongoDB,因此此过程有些棘手。
我对此进行了调查,我认为以下解决方案不符合我的需求:
mongodumpmongorestoredb.copyDatabase-实际上是用开发数据库的副本替换生产数据库。这两种解决方案都是有问题的,因为当我想要做的就是更新现有集合中的对象时,它们实际上替代了生产数据库。同样,进行开发=>生产不适合主从拓扑。
我能想到的最好的事情是:
我想知道是否有人有更好的解决方案?
如果没有,是否有人拥有可以执行此操作的脚本?
您可以使用mongoexport工具从开发数据库中导出单个集合。将其与 --query 选项结合使用,您可以在其中表达谓词。例如诸如此类的东西${ts : {$gt : previous clone time}}。
然后,使用mongoimport将增量文件导入生产数据库。如果您有两个具有不同值的不同逻辑文档,但表达相同的文档,   请使用--upsertand--upsertFields_id