我们有一个包含对象集合的开发服务器。这些对象的实际积累是一个持续的过程,在这个本地开发服务器上运行标签、验证等的整个过程。一旦这些对象准备好生产,它们就会被添加到生产数据库中,从那时起,生产数据库将在其计算中使用它们。
我正在寻找一种简单地将增量(新对象)添加到生产数据库中的方法,同时将所有其他集合和旧对象保留在同一个集合中。到目前为止,我们一直使用MySql,所以这个过程只涉及运行数据库结构和数据同步(我们使用Navicat)。我们现在要转移到MongoDB,所以这个过程有点复杂。
我已经对此进行了研究,我认为以下解决方案不适合我的需要:
这两种解决方案都有问题,因为它们实际上取代了生产数据库,而我只想更新现有集合中的对象。还有,Dev=
我能想到的最好的办法就是:
我想知道是否有更好的解决方案?
如果没有,是否有脚本可以执行此操作?
这是我为自己编写的一个脚本,当时我不得不不断地将我的本地MongoDB数据库复制到我的生产数据库中,并从中复制到项目中(我知道这很愚蠢)。
将数据库详细信息放入config.yml
后,您可以使用两个简单的命令开始同步:
./mongo-sync push # Push DB to Remote
./mongo-sync pull # Pull DB to Local
如果您在某个项目中使用它,最好将config.yml
添加到. gitignore
@Orid,谢谢你的回答,很抱歉回复太晚。
经过大量研究和一些尝试性错误,我决定使用问题中所述的解决方案(将测试数据库复制到机器上,然后逐个复制集合)。这是因为我在这里使用的数据是静态数据,没有真正的理由有时间戳。此外,我决定放弃“仅更新”的要求,因此目前我正在使用mongorestore和drop
我用这个脚本完成了所有这些:
<代码>rm-射频转储/
mongo copyTestDb.js;
for COLLECTION in <Collections>
do
mongodump -d nutrino_copy -c $COLLECTION -o dump
mongorestore -d nutrino -c ${COLLECTION} --drop dump/nutrino_copy/${COLLECTION}.bson
done
>
js脚本文件:
<代码>db。复制数据库(“
你认为我应该使用Mongo导入而不是MongoRestore吗?
您可以使用mongoexport工具从开发数据库导出单个集合。将其与--query选项结合使用,您可以在其中表达谓词。例如,${ts:{$gt:previous clone time}}
。
然后,使用mongoimport将增量文件导入生产数据库。如果您有两个具有不同id值的不同逻辑文档,但表示相同的文档,请使用--upsert
和--upsertFields
问题内容: 我有一个相当大的SQL Server 2005数据库,该数据库正在不断开发中。每隔一段时间,我要么找一个新的开发人员,要么需要将大规模的架构更改部署到生产服务器。 我主要关心的是从“主”开发副本向开发人员计算机部署架构+数据更新。 是否有一些内置功能或工具以这种方式发布架构+数据?我希望它花费尽可能少的时间。可以从SSMS内完成吗? 在此先感谢您的时间 问题答案: 我建议使用可以部署架
input { mongodb { uri => 'mongodb://web:l8ka65##1@10.112.5.11:32222/who_aa_cen' placeholder_db_dir => "/tmp/logstash-mongodb/who_log" placeholder_db_name => "who_aa_cen" collection
问题内容: 我有一个GlassFish / j2ee应用程序,我在一个盒子上进行开发,而生产是一个远程盒子。我有一个制作文件的功能,根据我的开发箱或生产环境,我需要文件的位置不同。什么是自动切换方式,所以我不必根据部署源文件来编辑源文件? 问题答案: 最简单的方法是定义一个系统属性,该属性指定数据的文件系统位置。生产应用服务器将定义一个值(在启动脚本中使用),而开发应用服务器将定义另一个值。您的应
例如当前数据结构是:{ "name": "mike" } 业务迭代后变成了:{ "name": "mike", "age" : 20 } 那么如何将前者也都变成例如:{ "name": "mike", "age" : 0 } 来实现类似关系型数据库的效果?还是说做不到只能用回关系型数据库
在本地电脑上可以搭建一套学习与开发网站的运行环境。有很多一键安装的集成环境,比如 Windows 上的 WAMP ,macOS 上的 MAMP。这些集成环境可以让你快速开始,但是不够灵活,也存在很多问题。更重要的是我们并没学到什么,我推荐可以先在本地用虚拟机的方式去手工搭建一个 LEMP 环境。 本书会利用 Vagrant 管理虚拟机,创建一台 Linux 类型的虚拟机,在上面手工去安装并配置环境
本文向大家介绍MongoDB开源数据库开发工具dbKoda,包括了MongoDB开源数据库开发工具dbKoda的使用技巧和注意事项,需要的朋友参考一下 Southbank Software公司最近发布了 dbKoda 0.6.0 ,这是该软件的 首个发布版 。dbKoda是一款开源的 MongoDB 开发工具,采用JavaScript、 React 和 Electron 开发。下图显示了dbKod