Добавить элемент в массив collections.update в метеор

    Polls.update({_id: id}, {$set : {already_voted[length]: ip});

Теперь это явно не работает. Я не могу просто поставить здесь переменную "длина".

В основном у меня есть already_voted, который является массивом, и я хочу добавить новый ip в этот массив. То, как я обрабатываю это в настоящее время, - это получить старую длину и использовать старую длину в качестве нового индекса для добавления элемента.

Мне интересно, как я должен это делать, поскольку моя текущая настройка не работает.

Чтобы уточнить: у меня нет всего массива, я просто хочу добавить новый элемент в массив в документе Poll.

Ответ 1

Используйте оператор $push Mongo:

Polls.update({ _id: id },{ $push: { already_voted: ip }})

См. документы здесь.

Ответ 2

Довольно легко добавить элемент в массив в коллекции в метеоре:

collection.update({_id: "unique id"},{$push:{already_voted: ip}});

Вы можете даже перезагрузить пользователя вместо обновления в соответствии с вашим требованием. что-то вроде этого:

collection.upsert({_id: "unique id"},{$push:{already_voted: ip}});