鉴于在我的数据库中我有这样的对象:
_id: 1,
class: 'x',
urls: {
'a': '/someAUrl',
'b': '/someBUrl'
}
我想运行一个脚本,将这些对象转换为:
_id: 1,
class: 'x',
urls: {
'a': '/someAUrl'
},
urls2: [
{type:'a', url:'/someAUrl'}
]
必须保留最初的 urls 字段。我尝试在mongo shell中运行这样的东西但没有成功:
db.eval(db.test.find({ class: 'x' }).snapshot().forEach( function (e) { e.urls2 = [{ url: e.urls.a, type: 'a'}]; db.test.save(e); } ))
有什么想法吗?谢谢!
答案 0 :(得分:0)
我所要做的就是将一个函数传递给db.eval,如下所示:
db.eval(function() {db.test.find({ class: 'x' }).snapshot().forEach( function (e) { e.urls2 = [{ url: e.urls.a, type: 'a'}]; db.test.save(e); } )})
并且有效