想象一下--我有一个集合,它有一个特殊的映射。
假装:

{
    "field": "lala",
    "subdoc": {
        "otherfield": "la",
        "etcfield": "la"
    }
}

我需要把它转换成不同的数据结构:
{
    "field-gets-renamed": "lala",
    "subdoc-has-different-stuff-in-it": {
        "something": "la",
        "something-else": "la"
    }
}

典型的做法是什么?(有吗?)
我是否逐条阅读collection1并将其写入其他集合?
还是有办法重新映射collection1中的字段?
我非常感谢一些例子,因为我是MongoDB的新手。

最佳答案

你应该利用$rename operator
在你的情况下是:

db.collectionName.update({}, { $rename : { 'field' : 'field123',  'subdoc' : 'subdoc123', 'subdoc.otherfield' : 'subdoc.otherfield123', 'subdoc.etcfield' : 'subdoc.etcfield123'} }, false, true);

我还没有测试过上面的命令。

关于mongodb - 如何重新映射mongodb集合的字段?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34340663/

10-09 08:12