这是我们大量节省时间的日子。我们介绍了一项名为“客户计划”的功能。该产品现在有两个计划 - 标准和保费。但是我们现在必须对所有组织进行回填数据。那将是头痛。
我们可以编写一个可以执行此操作的脚本。但这意味着将代码检查到存储库中。我们想要一种更简单的方法,因为新功能已经在生产中。
幸运的是,我们使用MongoDB,Mongo有JS壳。因此,这是对我们有用的魔力 -
db.getCollection('organizations').find({})
.forEach(function(organization) {
const existingPlan = db
.getCollection('organization-subscription-plans')
.findOne({
_id: organization._id,
planId: <id>,
status: <status>
});
if (!existingPlan) {
db.getCollection('organization-subscription-plans')
.insertOne({
organizationId: organization._id,
planId: <id>,
status: <status>,
startDate: <date>,
expirationDate: <date>
});
}
});
在您不知不觉中,我们所有的客户都受到我们的基本计划的欢迎。 yippeee !!!
P.S。如果您有很多数据,请使用Mongo Compass Shell,因为Robomongo在超时时不断错误。