Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在mongodb中将字段上移一级_Mongodb - Fatal编程技术网

在mongodb中将字段上移一级

在mongodb中将字段上移一级,mongodb,Mongodb,我接管了一个数据库,需要从中导出数据,但我有点被困在如何快速完成这项工作中 这是文档布局的一个示例: { "_id": ObjectId("37035cs978952"), "main": { "432daf56676": { "dat": "2011-09-09T15: 52: 26+01: 00", "a": "a", "b": "c", } } } 所以我想做的是将“dat”、“a”和“b”向上拉一

我接管了一个数据库,需要从中导出数据,但我有点被困在如何快速完成这项工作中

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

 {
   "_id": ObjectId("37035cs978952"),
   "main": {
     "432daf56676": {
       "dat": "2011-09-09T15: 52: 26+01: 00",
       "a": "a",
       "b": "c",
       }
  }
}   
所以我想做的是将“dat”、“a”和“b”向上拉一级,这样我就可以快速地将mongo导出到csv。例如mongoexport数据库集合-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() );

两个问题:(1)每个文档是否都有“主”标签?;(2) 是否有多个子文档具有随机十六进制数?如果我知道这一点,我可以为你构造一个答案。是的,每个文档都有一个主标签。2.它在随机六边形内是平的。希望这些回答你的问题!