在Meteor中将元素添加到数组collections.update

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

现在显然这样做行不通。我不能简单地把一个变量"length"放在那里。

基本上,我有一个名为already_voted的数组,我想要向其中添加一个新的IP地址。我目前处理这个问题的方法是获取旧的长度并将旧的长度用作新的索引以添加元素。

我正在思考应该如何处理这个问题,因为我的当前设置无法正常工作。

澄清一下::我没有整个数组,我只想在投票文档中将一个新元素添加到数组中。


你的意思是说你“有”整个数组,而且你想添加在存储的文档数组中不存在的成员吗?这并不是非常清楚你在说什么。 - Neil Lunn
我没有整个数组。我只有一个值,我想将其添加到名为“already_voted”的数组中,在我的“Polls”文档中。 - user1952811
那让事情更清楚了,现在你有答案了。 - Neil Lunn
2个回答

30

使用$push MongoDB操作符:

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

这里查看文档。


3
更好的做法是将其与$set结合使用,以防它是一个新文档,同时添加upsert - Neil Lunn

2
在Meteor中向集合的数组中添加元素非常容易:
collection.update({_id: "unique id"},{$push:{already_voted: ip}});

根据您的要求,甚至可以使用upsert代替update。就像这样:

您可以像这样使用upsert:

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

欢迎来到 Stack Overflow。您的回答似乎与现有且已被接受的答案及其评论非常相似。如果要有用,对旧问题的新回答应添加新信息。请阅读[答案]页面以了解如何编写好的答案。 - AdrianHHH

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接