在 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 下面的字段是一个随机生成的数字(我不太清楚为什么它首先被放在那里!

提前感谢!

你可以从 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() );

最新更新