2016-10-13 95 views
0

我正在嘗試使用node.js在mongodb中插入和更新文檔。我可以使用以下代碼成功插入文檔。更新MongoDb中的整個文檔

var obj = { jsonit: 
      { users: {}, 
       groups: {}, 
       meta: 
        { id: 'daf09a36-b961-3db4-3144-aa19479c70c7'}, 
       name: 'John Doe', 
       meta: undefined, 
       loki: undefined 
      } 
Collection.insert(obj).then(function insertCollectioncb(object) { 
     obj = object; 
     }); 

之後,我想更新整個文件,因爲我不知道哪些鍵將被更改或將插入哪些新鍵。我正在使用以下代碼來更新我的文檔。

var obj = jsonit: 
     { users: {}, 
     groups: {}, 
     meta: 
      { id: '0da70a1f-f5cd-0fd2-10c8-7aa421296057'} , 
     name: 'John Doe', 
     creationDate: '2016-10-13T11:05:08.453Z', 
     income: 1000, 
     meta: null, 
     loki: null 
     } 
Collection.update({ _id: '57ff860b240e9d50a42ec53c' }, obj).then(function updateBranchcb(object) { 
     obj = object; 
     }); 

我可以在mongo shell中成功執行它,但不能通過節點js執行。

+0

你得到一個錯誤信息或什麼? –

+0

obj定義在第二個代碼上沒有很好地形成。 –

+0

@DaveV不,我沒有得到任何錯誤 –

回答

0

試試這個

var obj = jsonit: 
     { users: {}, 
     groups: {}, 
     meta: 
      { id: '0da70a1f-f5cd-0fd2-10c8-7aa421296057'} , 
     name: 'John Doe', 
     creationDate: '2016-10-13T11:05:08.453Z', 
     income: 1000, 
     meta: null, 
     loki: null }, true 
Collection.update({ _id: '57ff860b240e9d50a42ec53c' }, obj).then(function updateBranchcb(object) { 
     obj = object; 
     }); 

的問題是一個額外的接近大括號

meta: 
    { id: '0da70a1f-f5cd-0fd2-10c8-7aa421296057'} },