我在meteor上使用以下代码:
var game = Games.findOne({_id:gameId});
if(game.status == 'waiting'){
game.status == 'canceled';
}
基本上我是从一个集合中获取一个对象,对它进行一些更改,现在我想将它保存到数据库中,该怎么做?是否有类似.save()方法的东西?
我来自PHP,所以我可能完全忽略了这一点,但在Laravel我可以从数据库中获取,使用该对象,完成后只需在数据库上更新它。我可以在流星中使用相同的工作流程吗?怎么样?
答案 0 :(得分:0)
您需要使用update
方法。
代码应该是:
var game = Games.findOne({_id:gameId});
if(game.status == 'waiting'){
Games.update({_id:gameId},{$set : {status: 'canceled'}});
}
警告:仅当仍包含insecure
包时,这仅适用于客户端。您应该在生产中调用DB对CRUD操作的方法。
答案 1 :(得分:0)
完成对象操作后,可以像这样保存
var game = Games.findOne({_id:gameId});
if (game.status == 'waiting') {
game.status = 'canceled';
}
// .. change more stuff in `game`
Games.update({_id: game._id}, {$set: game});
<小时/> 这与Ankit's answer之间的区别在于,在我的版本中,整个对象都会更新,而在Ankit中只有
status
。如果你只是要更新一个参数,那么最好使用他的方式,否则我会这样做。
答案 2 :(得分:0)
正如其他人所回答的那样,流星收藏品没有您期望的工作流程,但是有一个名为天文学的流星的ORM包可以按照您想要的方式进行,因此如果您试用它可能会提高效率({ {3}})
var game = Games.findOne({_id:gameId});
if(game.status == 'waiting'){
game.status = 'canceled';
}
game.save()