想象一下 - 我有一个集合,它有一个特定的映射。
假装:
{
"field": "lala",
"subdoc": {
"otherfield": "la",
"etcfield": "la"
}
}
我需要将其转换为不同的数据结构:
{
"field-gets-renamed": "lala",
"subdoc-has-different-stuff-in-it": {
"something": "la",
"something-else": "la"
}
}
这样做的典型方式是什么? (有吗?)
我是否通过doc阅读collection1 doc并将其写入不同的集合? 或者有没有办法重新映射collection1中的字段?
我非常感谢一些例子,因为我是mongodb的新手。
答案 0 :(得分:2)
您应该使用$rename operator
在你的情况下,它将是:
db.collectionName.update({}, { $rename : { 'field' : 'field123', 'subdoc' : 'subdoc123', 'subdoc.otherfield' : 'subdoc.otherfield123', 'subdoc.etcfield' : 'subdoc.etcfield123'} }, false, true);
P.S:我没有测试过上面的命令。