在mongodb中将字段向上移动一级

时间:2012-08-08 15:06:43

标签: mongodb

我已经接管了一个数据库,需要从中导出数据,但我有点担心如何快速完成。

这是文档布局的一个示例:

 {
   "_id": ObjectId("37035cs978952"),
   "main": {
     "432daf56676": {
       "dat": "2011-09-09T15: 52: 26+01: 00",
       "a": "a",
       "b": "c",
       }
  }
}   

所以我想做的是拉“dat”,“a”& “b”上升一级,这样我就可以快速将mongo导出到csv。例如mongoexport db collection -f“main.dat”,“main.a”。问题是main下面的字段是一个随机生成的数字(我不知道为什么它首先放在那里!)。

提前致谢!

1 个答案:

答案 0 :(得分:2)

您可以使用从mongo shell运行的一些JavaScript来执行此操作:

XDB = db.tb;  // season to taste

var cursor;
cursor = XDB.find();

do {
    var olddoc = cursor.next();
    var newdoc = {};
    var oldmain = olddoc.main;

    for( x in oldmain ) {
       var newmain = oldmain[x]; 
       newdoc.main = newmain;
    }
    newdoc._id = olddoc._id;
    XDB.update({_id: olddoc._id}, newdoc );
} while ( cursor.hasNext() );