Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongodb 图形ql+;Mongoose-返回FindOneAndUpdate时,我的inc值是其应值的数倍_Mongodb_Mongoose_Graphql - Fatal编程技术网

Mongodb 图形ql+;Mongoose-返回FindOneAndUpdate时,我的inc值是其应值的数倍

Mongodb 图形ql+;Mongoose-返回FindOneAndUpdate时,我的inc值是其应值的数倍,mongodb,mongoose,graphql,Mongodb,Mongoose,Graphql,我正在使用graphQL和mongoose查询我的数据库 我的意图是为一个设定的记录增加一个值1 Mutation: { cardcompared (root, {name}, context, info) { console.log('mutation'); return Card.findOneAndUpdate({name: name}, {$inc : {comparisons: 1}}, {new: true}, function(err, card)

我正在使用graphQL和mongoose查询我的数据库

我的意图是为一个设定的记录增加一个值1

Mutation: {
    cardcompared (root, {name}, context, info) {
      console.log('mutation');
      return Card.findOneAndUpdate({name: name}, {$inc : {comparisons: 1}}, {new: true}, function(err, card) {
        console.log(card.comparisons);
      })
}
由于某种原因,当我返回值时,当使用
{$inc:{comparations:1}
时,返回值似乎会导致增量值随机为1、2或3

但是下面的代码按预期工作

Mutation: {
    cardcompared (root, {name}, context, info) {
      console.log('mutation');
      Card.findOneAndUpdate({name: name}, {$inc : {comparisons: 1}}, {new: true}, function(err, card) {
        console.log(card.comparisons);
      })
}
以上代码$inc每次将值乘以1


我不确定为什么会发生这种情况。

由于第一个示例中的闭包属性,返回函数执行了多次,因此值的增量非常高,超过1。在步骤2中,您没有返回函数,因此它只执行了一次