Meteor:根据id's更新数据库中的多个条目
Meteor: Update multiple entries in a database by their id's
我需要帮助更新数据库中的多个条目的流星行。第一个条目。下面的更新不工作,我相信,因为流星现在需要你通过id更新。
'click #draw': ->
winner = _.shuffle(Entries.find(winner: {$ne: true}).fetch())[0]
if winner
Entries.update({recent: true}, {$set: {recent: false}}, {multi: true})
Entries.update(winner._id, $set: {winner: true, recent: true})
Template.entry.winner_class = ->
if this.recent then 'highlight' else ''
所以我试着改成下面的代码。然而,它不能正常工作,因为它看起来只改变了一个id(第一个)。
'click #draw': ->
winner = _.shuffle(Entries.find(winner: {$ne: true}).fetch())[0]
recent_winner = Entries.find(recent: true).fetch()
if winner
Entries.update(recent_winner._id, {$set: {recent: false}}, {multi: true})
Entries.update(winner._id, $set: {winner: true, recent: true})
Template.entry.winner_class = ->
if this.recent then 'highlight' else ''
您需要通过Meteor.methods一次修改多个文档。来自文档:
编辑:例如,一个方法调用可能看起来像这样:update的行为取决于是否被调用可信或不可信的代码。受信任代码包括服务器代码和方法的代码。不受信任的代码包括客户端代码,如事件处理器和浏览器的JavaScript控制台。
可信代码可以通过设置multi to一次修改多个文档true,并且可以使用任意的Mongo选择器来查找要访问的文档修改。它绕过由allow和deny设置的任何访问控制规则。受影响的文档数量将从更新调用返回如果你不传递回调。
不受信任的代码一次只能修改单个文档,由_id。只有检查出有,才允许修改适用的允许和拒绝规则。受影响文件的数量将被返回回调。不受信任的代码不能执行反转,不安全模式除外。
"click #draw": function(){
var winner = _.shuffle(Entries.find({winner: {$ne: true}}).fetch())[0];
if (!!winner){
Meteor.call(
"drawWinner", //an arbitrary method name of your choosing
winner, // passing it your winner
function(error, result){ // an optional async callback
if (error){
// handle error if error from method
} else {
// handle any return object from method
}
}
);
}
}
然后在你的方法调用中,它可能被放置在一个共享目录中,比如'lib'或服务器端专用目录中(关于这一点的更多信息,请参阅Meteor文档):
Meteor.methods({
"drawWinner": function(winner){
Entries.update({recent: true}, {$set: {recent: false}}, {multi: true});
Entries.update(winner._id, {$set: {winner: true, recent: true}});
return winner; //or the like
}
});
相关文章:
- 如何在执行 Ajax 请求大量数据库更新时实现进度条
- 用sql数据库更新谷歌地图标记
- 数据库更新后刷新数据表
- 通知浏览器数据库更新的最佳方法
- AJAX 数据库更新
- 数据库更新的用户确认 - php + Ajax
- 如何使用 typicode/lowdb 文件数据库更新项目数组
- 如何在数据库更新时向客户端发送警报,如facebook聊天
- 在数据库更新时通过Jquery Ajax跟踪和操纵内容
- 付款处理成功,但数据库更新失败
- AJAX数据库更新与CSS按钮颜色改变使用Codeigniter
- 我怎么能得到一个文本字段的值从数据库更新的形式
- Angular JS从数据库更新视图
- 使用外部数据库更新多个站点上的html和css
- 如何在不重新加载页面的情况下使用数据库更新游戏的最高分?
- 当数据库更新时,web应用程序中的通知
- php/javascript在数据库更新后更改内联标签
- 从远程数据库更新Kendo UI Mobile中的列表视图
- 如何处理Angular控制器中的错误从MongoDB数据库更新/删除在Express
- onclick提交上的数据库更新字段不起作用