2016-02-28 177 views
1

我有以下代碼:我可以在Meteor的MongoDB中存儲JavaScript Map對象嗎?

myMapField = new Map(); 

for (var i = stuff.length; i--;) { 
    myMapField.set(stuff.id, { name: stuff.name, type: Types.MY_TYPE }); 
} 

Meteor.users.update(Meteor.userId(), { 
     $set: { 'profile.myMapField': myMapField } 
    }); 

它不工作和錯誤消息沒有幫助(「未定義」)。

有沒有辦法在Meteor的MongoDB中存儲JavaScript Map對象?

回答

0

我不認爲有一種直接的方式可以將Map對象直接插入到MongoDB中。可能的解決方法,我可以建議是:

  1. 遍歷Map對象,並
  2. Store中的鍵值對分別在DB

的模式可能是這個樣子:

{ 
    _id: someId, 
    map: [{ 
     key: key1, 
     value: value1 
     },{ 
     key: key2, 
     value: value2 
     },{ 
     key: key3, 
     value: value3 
     },{ 
     key: key4, 
     value: value4 
     },{ 
     ... 
     }] 
} 

輔助函數轉換地圖對象爲這種格式,反之亦然將不得不被寫入到這種效果。

相關問題