首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Meteor如何接收MongoDB查询结果的更新?

Meteor如何接收MongoDB查询结果的更新?
EN

Stack Overflow用户
提问于 2012-04-11 17:47:35
回答 2查看 5.4K关注 0票数 17

几个月前我问过一个问题,Meteor似乎有答案。

Which, if any, of the NoSQL databases can provide stream of *changes* to a query result set?

Meteor如何接收MongoDB查询结果的更新?

谢谢,

克里斯。

EN

回答 2

Stack Overflow用户

发布于 2012-04-12 02:32:40

你想让query.observe()来做这个。假设您有一个带有标签字段的Posts集合,并且您希望在添加带有important标签的帖子时得到通知。

http://docs.meteor.com/#observe

代码语言:javascript
复制
// collection of posts that includes array of tags
var Posts = new Meteor.Collection('posts');

// DB cursor to find all posts with 'important' in the tags array.
var cursor = Posts.find({tags: 'important'});

// watch the cursor for changes
var handle = cursor.observe({
  added: function (post) { ... }, // run when post is added
  changed: function (post) { ... } // run when post is changed
  removed: function (post) { ... } // run when post is removed
});

如果您想在post更改时在每个浏览器中执行某些操作,则可以在客户机上运行此代码。或者你可以在服务器上运行,如果你想在添加重要帖子时向团队发送一封电子邮件。

请注意,addedremoved指的是查询,而不是文档。如果您有一个现有的post文档并运行

代码语言:javascript
复制
Posts.update(my_post_id, {$addToSet: {tags: 'important'}});

这将触发“已添加”回调,因为帖子将被添加到查询结果中。

票数 19
EN

Stack Overflow用户

发布于 2013-03-01 17:10:41

目前,Meteor在一个实例/进程上工作得很好。在这种情况下,所有查询都要经过这个实例,它可以将其广播回其他客户端。此外,它每10秒轮询一次MongoDB,以查看外部查询对数据库的更改。他们计划在1.0版本中提高可伸缩性,并希望允许多个实例通知每个实例有关更改的信息。

另一方面,DerbyJS正在使用Redis PubSub。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10103541

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档