与JS和Mongo进行回填客户计划
#javascript #生产率 #mongodb #hacks

这是我们大量节省时间的日子。我们介绍了一项名为“客户计划”的功能。该产品现在有两个计划 - 标准和保费。但是我们现在必须对所有组织进行回填数据。那将是头痛。

我们可以编写一个可以执行此操作的脚本。但这意味着将代码检查到存储库中。我们想要一种更简单的方法,因为新功能已经在生产中。

幸运的是,我们使用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在超时时不断错误。