mongodb - 在 MongoDB 中将 fullName 更改为 firstName、lastName
问题描述
我们已将User集合更新为具有2 个键而不是firstName
,但我们目前有 400 多个用户创建为。我可以使用 MongoDB Atlas UI 手动创建 400 组,键,但这需要很长时间。lastName
fullName
fullName
firstName
lastName
我可以使用 mongo shell 来(a)fullName
按空格分割,(b)将名字设置为分割数组中的第一个值(第一个空格之前的所有内容),以及(c)将姓氏设置为之后的所有内容拆分数组中的第一个空间。John Smith
会分裂成John
and Smith
,John Smith Jr.
会分裂成John
and Smith Jr.
。这可以在 mongo shell 中完成吗?
解决方案
使用 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
}
}
});
推荐阅读
- r - 考克斯模型森林图
- c# - 滚动到底部时,ListView 会自动添加更多内容
- huawei-mobile-services - IAP 回调地址
- r - devtools::check() - 没有名为“Matrix”的包
- flutter - ListView.builder 到达列表末尾并向后滚动后返回起始位置
- python - 补丁是否可以在 SemVer 中包含添加内容?
- c++ - wxTimer 与 Bind() 绑定后未调用回调
- arrays - Ruby:比较两个数组数组的有效方法
- firebase - 未处理的异常:[firebase_storage/object-not-found] 所需参考处不存在对象
- debugging - 如何找出最初创建淘汰赛 observable 的位置(在哪个 .js 文件中)?