首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将fullName更改为firstName,MongoDB中的lastName

将fullName更改为firstName,MongoDB中的lastName
EN

Stack Overflow用户
提问于 2021-07-04 23:45:46
回答 2查看 390关注 0票数 0

我们已经更新了我们的用户集合,将firstNamelastName作为2键,而不是fullName,但是我们有超过400个用户被创建为fullName。我可以使用MongoDB Atlas UI手动创建400个firstNamelastName键,但这将花费很长时间。

我可以使用mongo来(a)将fullName按空格拆分,以及(b)将名称设置为拆分数组中的第一个值(在第一个空格之前的所有内容),以及(c)将姓氏设置为拆分数组中第一个空格之后的所有内容。John Smith将分为JohnSmithJohn Smith Jr.将被拆分为JohnSmith Jr.。这能在芒果壳里做吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-07-05 00:47:10

使用mongo执行此一次活动。

代码语言:javascript
运行
复制
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
        }
    }
});
票数 2
EN

Stack Overflow用户

发布于 2022-03-17 10:50:33

改进Tuchar的回答,将剩余的名称实际放在姓氏中,并且也不使用不推荐的.save()

代码语言:javascript
运行
复制
db.User.find({}).forEach(function(doc) {
  if (doc.fullName && doc.fullName.split) {
    const parts = doc.fullName.split(' ');
    db.User.updateOne({_id: doc._id}, {$set: {
      firstName: parts.shift(1),
      lastName: parts.join(' ')
    }});
  }
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68249540

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档