如何重新映射mongodb集合的字段?

时间:2015-12-17 17:24:44

标签: mongodb

想象一下 - 我有一个集合,它有一个特定的映射。

假装:

{
    "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的新手。

1 个答案:

答案 0 :(得分:2)

您应该使用$rename operator

在你的情况下,它将是:

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

P.S:我没有测试过上面的命令。