使用mongodb中对象字段的值创建新数组字段

时间:2016-07-20 18:20:52

标签: mongodb

鉴于在我的数据库中我有这样的对象:

_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);   } ))

有什么想法吗?谢谢!

1 个答案:

答案 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);   } )})

并且有效