这是我的功能,它不会更新NumStat集合文档的计数。
Meteor.methods({
addDocument: function(array){
object = {
numbers : array,
date : new Date()
}
NumArray.insert(object);
for (var i = 0; i < array.length; i++) {
NumStat.update({num : array[i]},{$inc : {count : 1}});
console.log(NumStat.findOne({num : array[i]})); // this throws undefined
}
}
});
如果我这样做: NumStat.update({num:2},{$ inc:{count:1}}); 它运作得很完美,但不像我提出的例子!这种方法有什么问题,我怎样才能得到我想要的结果?增加NumStat文档的计数按数组[item]
查找文档解决方案: 这是我的坏,因为数组上的值是一个字符串,数据库上的num值是一个int。解决方案是使用parseInt(array [i])。一个更好的解决方案是使用findAndModify作为@Dewfy提到。
答案 0 :(得分:1)
我根本不了解Mongo的JavaScript实现,但是:
update
其他方言(Java或C#)不创建记录但更新现有方言,因此请查看save
P.S。而不是循环使用findAndModify
指定要修改的ID数组 - 那么您可以避免循环并将修改逻辑放置到服务器端