gpt4 book ai didi

mongodb - Meteor 方法和 Mongo $inc 非数字错误

转载 作者:IT老高 更新时间:2023-10-28 13:35:26 25 4
gpt4 key购买 nike

我正在查看 methods 您的第一个 Meteor 应用程序 的章节,作者是 David Turnbull。

我有一种更新数据库中字段的方法。

'modifyPlayerScore': function(selectedPlayer, scoreValue){
PlayersList.update(selectedPlayer, {$inc: {score: scoreValue} });
}

这些方法是从事件函数中调用的

'click .increment': function(){

var selectedPlayer = Session.get('selectedPlayer');

Meteor.call('modifyPlayerScore', selectedPlayer, 5);

},
'click .decrement': function(){

var selectedPlayer = Session.get('selectedPlayer');

Meteor.call('modifyPlayerScore', selectedPlayer, -5);

}

当我在应用程序中使用此功能时,我在终端中看到错误

Exception while invoking method 'modifyPlayerScore' MongoError: Modifier $inc allowed for numbers only

我使用了一个 console.log 语句来打印 scoreValue 变量,它显示为 5 或 -5。我有一种感觉,这可能是一个字符串而不是一个数字,但我不知道如何解决这个错误。提前感谢您的帮助!

最佳答案

当您将分数添加到玩家时:

PlayersList.insert({name: 'test', score:3});

我想,你可以提高分数。但现在没有了。

这是因为您传递的是文本参数而不是整数。添加播放器时,应使用 parseInt():

 PlayersList.insert({
name: name,
score: parseInt(score),
createdBy: Meteor.userId()
})

现在,它应该可以工作了。或者你可以使用 parseInt() 来设置 score

关于mongodb - Meteor 方法和 Mongo $inc 非数字错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28837301/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com