在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.它在随机六边形内是平的。希望这些回答你的问题!