2016-02-28 215 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 
     },{ 
     ... 
     }] 
} 

辅助函数转换地图对象为这种格式,反之亦然将不得不被写入到这种效果。

相关问题