2015-12-17 41 views
1

图片 - 我有一个集合,它有一个特定的映射。如何重新映射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的新手。

回答

2

你应该使用的$rename operator

你的情况,那就是:

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

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

+1

哦!我明白了:)非常感谢。你的命令运作良好。 – Bear