首页 > 解决方案 > 在 MongoDB 中将 fullName 更改为 firstName、lastName

问题描述

在此处输入图像描述

我们已将User集合更新为具有2 个键而不是firstName,但我们目前有 400 多个用户创建为。我可以使用 MongoDB Atlas UI 手动创建 400 组,键,但这需要很长时间。lastNamefullNamefullNamefirstNamelastName

我可以使用 mongo shell 来(a)fullName按空格分割,(b)将名字设置为分割数组中的第一个值(第一个空格之前的所有内容),以及(c)将姓氏设置为之后的所有内容拆分数组中的第一个空间。John Smith会分裂成Johnand SmithJohn Smith Jr.会分裂成Johnand Smith Jr.。这可以在 mongo shell 中完成吗?

标签: mongodbmongodb-query

解决方案


使用 mongo shell 执行此一次性活动

db.User.find({}).forEach(function(doc) { // loop over all the records
    if (doc.fullName && doc.fullName.split) {
        var name = doc.fullName.split(' ');
        if (name && name.length) {
            doc.firstName = name[0];
            if (name[1]) doc.lastName = name[1];
            // delete doc.fullName;
            db.User.save(doc); // save back the record
        }
    }
});

推荐阅读