以下代码在集合中填充某些信息时触发客户端。有时它在智能手机上不起作用,但在桌面Chrome上工作正常
在集合上调用/**
* @return \Illuminate\Database\Eloquent\Relations\HasMany
*/
public function meetingSummaries()
{
return $this->hasMany('App\InteractionSummary');
}
和find
是否正确?不是过度杀人? THX
findOne
修改
当 'myMethod': function (age, health) {
Meteor.call('doStuff-that-will-change-the-document');
myCollection.find().observeChanges({ // <===== find
changed: function (id, fields) {
let newDoc = myCollection.findOne({age: age}); // <==== another findOne
Meteor.users.update({_id: Meteor.user()._id}, {$unset: {'profile.taskInProgress': ''}});
if (newDoc) {
if (fields.filed1) {
lib.dothis1(newDoc, health);
} else if (fields.field2) {
lib.dothat(newDoc, health);
}
}
}
});
},
和lib.dothis1
分别更新时,我需要客户端代码触发lib.dothat
或field1
。
答案 0 :(得分:0)
如果您想了解添加的内容,只需使用added
属性 - see the docs
建立一个实时查询,在查询结果发生变化时调用回调。与observe相反,observeChanges仅提供旧结果集和新结果集之间的差异,而不是更改的文档的全部内容。
回调可能具有以下功能:
added(id, fields) or
新文档已输入结果集。它有id和字段 指定。 fields包含文档的所有字段,不包括 _id字段。新文件在之前确定的文件之前,或者在之前是否为空之前结束。
比添加新文档时获得新回调更有效,这比再次使用find
更有效。