Mongodb 图形ql+;Mongoose-返回FindOneAndUpdate时,我的inc值是其应值的数倍
我正在使用graphQL和mongoose查询我的数据库 我的意图是为一个设定的记录增加一个值1Mongodb 图形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)
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中,您没有返回函数,因此它只执行了一次