Methods MeteorJS无法更新文档上的计数

Methods MeteorJS无法更新文档上的计数,methods,meteor,mongodb-query,Methods,Meteor,Mongodb Query,这是我的函数,它不会更新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({n

这是我的函数,它不会更新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
    }
}
});
Meteor.methods({
addDocument:函数(数组){
对象={
数字:数组,
日期:新日期()
}
插入(对象);
对于(var i=0;i
如果我这样做: update({num:2},{$inc:{count:1}}); 它工作得很好,但不像我举的例子!?这种方法有什么问题?我怎样才能得到我想要的结果?增加按数组[项]查找文档的NumStat文档的计数

解决方案:
这是我的错,因为数组上的值是字符串,数据库上的num值是int。解决方案是使用parseInt(数组[i])。更好的解决方案是使用@Dewfy提到的findAndModify。

我根本不知道Mongo的JavaScript实现,但是:

  • 其他方言(Java或C#)的
    update
    不会创建记录,但会更新现有记录,因此请查看
    save
  • 在蒙哥语中有一个概念是“”,这可能会延迟真正的写作。确保你处理好你的问题

  • p、 使用
    find和modify
    来指定要修改的ID数组,而不是循环-这样您就可以避免循环,并将修改逻辑放在服务器端

    非常感谢我将要使用的fundAndMdofiy函数。至于数组[i],这是我的错,数组的项是字符串,数据库的num值是int