我在MongoDB的文档结构,我想改变我的所有文档,而无需使用这样的聚合函数的响应 ,但通过创建特定的功能,并具有从结果:
{
"_id" : ObjectId("String"),
"content" : {
"href" : "String",
"text" : "String",
"code" : "String "
}
}
于:
{
"_id" : ObjectId("String"),
"href" : "String",
"text" : "String",
"code" : "String "
}
任何建议请。 谢谢。
如果你不喜欢聚集(或你的content
的内容可以跨文件不同)也可以使用
db.coll.find().forEach(function (d) {
db.coll.update({
_id : d._id
}, {
$set : d.content,
$unset : {
'content' : 1
}
})
});
该easiets办法做到这一点是使用聚合框架。 然后保存输出转换成newCollection
核实后,你可以删除旧的和重命名创建一个。
db.collection.aggregate([{
$project : {
_id : 1,
href : "$content.href",
text : "$content.text",
code : "$content.code",
}
}, {
$out : "newCollection"
}
])