У мене є такий код:
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 }
});
Це не працює, і повідомлення про помилку не допомагає ("невизначено").
Чи є спосіб зберігати об’єкт JavaScript Map у MongoDB Meteor?
Відповіді:
0 для відповіді № 1Я не думаю, що існує прямий спосіб вставити об’єкт Map в MongoDB на даний момент. Можливе вирішення, яке я можу запропонувати, - це:
- Ітерація над об’єктом Map, і
- Зберігайте пари ключ-значення окремо в БД
Схема може виглядати приблизно так:
{
_id: someId,
map: [{
key: key1,
value: value1
},{
key: key2,
value: value2
},{
key: key3,
value: value3
},{
key: key4,
value: value4
},{
...
}]
}
Допоміжні функції для перетворення об’єктів Map у цей формат і навпаки повинні бути записані для цього.