2016-07-20 112 views
0

創建從對象的字段值的新陣列領域鑑於在我的分貝我有這樣的對象:MongoDB中

_id: 1, 
class: 'x', 
urls: { 
    'a': '/someAUrl', 
    'b': '/someBUrl' 
} 

我想運行轉換這些對象的腳本:

_id: 1, 
class: 'x', 
urls: { 
    'a': '/someAUrl' 
}, 
urls2: [ 
    {type:'a', url:'/someAUrl'} 
] 

最初網址必須保留。我嘗試在mongo外殼內運行這樣的東西沒有成功:

db.eval(db.test.find({ class: 'x' }).snapshot().forEach( function (e) {  e.urls2 = [{ url: e.urls.a, type: 'a'}];  db.test.save(e); })) 

任何想法?謝謝!

+0

爲什麼你要複製的集合中的數據? – styvane

+0

可能是一個錯字。 – floatingpurr

+0

@ superciccio14 yeap,需要將函數傳遞給eval –

回答

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

和它的工作