问题标签 [meteor-publications]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
55 浏览

meteor - Meteor 出版物/订阅未按预期工作

我有两个出版物。

第一个 pub 实现了搜索。尤其是这个搜索

第二个基本返回一些字段

我订阅了每个出版物,如下所示:

所以这是我的问题:当我使用第二个订阅(to appointments.patients)时,第一个不起作用。当我评论第二个订阅时,第一个订阅再次起作用。我不确定我在这里做错了什么。

0 投票
1 回答
75 浏览

mongodb - Meteor - 为什么不直接发布所有的收集数据?

这可能是一个很容易回答的问题,因为它可能只是我缺乏理解,但是如果您必须运行两次查询 - 一次在服务器上,一次在客户端上 - 为什么不只发布所有收集数据,并且然后只在客户端上运行一个查询?

显然我的意思不是为用户集合这样做,但是如果你有一个博客帖子集合,这不是有益的吗?

发布所有帖子数据,然后订阅它并在客户端上运行任何必要的查询来获取您需要的数据。

0 投票
1 回答
245 浏览

meteor - Meteor 中的重叠订阅是否会使性能变差?

这是我的问题。

我有一个应用程序,用户可以在其中将笔记存储在记事本中。

目前,当用户单击记事本时,我订阅了一个返回该记事本前 5 个笔记的出版物。

因此,每当用户导航到一个新的记事本时,就会设置一个新的订阅,并且该记事本的 5 个笔记最终会出现在 minimongo 中。所以 minimongo 一次在笔记集中只有 5 个笔记

为了改善用户体验,我更改了发布,因此在整个应用程序的初始加载时,我订阅了一个发布,该发布返回所有记事本和每个记事本的前 5 个笔记。因此,现在在 minimongo 中,我们始终拥有 (5 x (# of notepads)) 数量的笔记。

所以初始负载有点重,但我希望在那之后,在记事本之间导航要快得多。

因此,在加载时,我订阅myInfo返回用户记事本和每个记事本的拳头 5 个笔记。

然后当你实际点击一个记事本时,我订阅了myNotepadInfo,它也返回了记事本的前 5 个笔记。由于初始订阅已经检索到此信息,因此 minimongo 中的任何文档都没有实际更改。但我仍然想订阅,myNotepadInfo因为我有一个加载更多注释机制,它依赖于模板中的订阅。

所以我的应用程序完全可以处理这些更改,但我不确定引擎盖下发生了什么,以及这种方法是否真的有助于提高性能。我没有注意到更改后记事本加载方式的具体差异。

所以基本上我有第二个订阅,它与初始订阅重叠。

在我看来,由于第二次订阅与最初的订阅重叠,它必须向客户端传输更少的文档,所以它应该更快?

0 投票
1 回答
78 浏览

arrays - 如何从 Meteor 发布中排除对象内数组中的对象键

我正在向 Meteor blaze 模板发布一些数据,我想返回特定字段,但它是一个带有嵌套数组/对象的复杂对象,所以我不知道该怎么做

这是我要发布的对象的示例

{ "_id": "q9i6qAZmKcf6MCPE2", "name": "Exam Name", "questions": [ { "number": 1, "question": "Question 1", "multipleTrue": false, "answers": [ { "letter": "a", "answer": "Blah Blah", "correct": false <-------------- }, { "letter": "b", "answer": "Blah Blah", "correct": true <-------------- } ] }, { "number": 2, "question": "Question 2", "multipleTrue": false, "answers": [ { "letter": "a", "answer": "Blah Blah", "correct": true <-------------- }, { "letter": "b", "answer": "Blah Blah", "correct": true <-------------- } ] } ] }

我使用以下代码发布此内容:

return Assessments.find( {"name": "Exam Name"}, {fields: {name: 1, questions: 1}});

如何修改该出版物以排除我用箭头突出显示的键“正确”?

问题数组 > 问题对象 > 答案数组 > 答案对象 > 正确键

0 投票
1 回答
234 浏览

mongodb - 如何根据 Meteor 发布中的某些谓词过滤子文档(数组)?

我试图过滤的不仅仅是字段,还有我的数组字段中的对象。参考下面的示例,对于分段字段,我希望我的客户只获取分段数组中的那些对象isReleased === true

示例架构

所以基本上,我希望我的客户收到,

0 投票
2 回答
139 浏览

javascript - MongoDB:如何获取主文档和所有祖先

我需要创建一个出版物,它为我提供了集合中的一组文档。在这里,您可以看到这些文档是如何相互关联的:

所以我知道的是第一个文档的 ID,我还需要出版物中的所有祖先。

0 投票
2 回答
141 浏览

meteor - Meteor Observer 重用:将我的发布返回查询更改为不使用 this.userId 会使我的观察者更可重用吗?

我有一个出版物,它返回一个看起来像这样的游标:

如您所见,查询对用户来说是唯一的,因为它包括this.userId

this.userId在出版物中使用作为一种安全形式。如果您与该特定记事本相关联,您只会取回数据。

在我的应用程序中,多人可以在一个记事本上进行协作。那么为了让观察者更可重用,这种调整会帮助我的应用程序吗?

我认为这就是观察者重用的意思。该发布为订阅它的任何用户返回完全相同的查询。那么这是否正确,这种优化值得改变吗?

0 投票
1 回答
21 浏览

javascript - MeteorJS 出版物超出范围

我有以下模板:

我已将出版物附加到reportsSummary模板,但它似乎也扩展到reportsPatients模板。我不知道为什么,因为我遵循了正确的方法来定义 pubs/subs(我认为......)。

我知道它正在扩展到,reportsPatients因为如果我Appointments.find()reportsPatients助手返回而不订阅出版物,我将获得也在reportsSummary

这是我的出版物:

这是我的订阅:

这并不是说我所拥有的东西本身就破坏了任何功能。当应用程序有大量数据需要筛选时,我只是担心效率。我在这里错过了什么吗?

0 投票
1 回答
80 浏览

arrays - 如何从 Meteor 出版物中的数组返回单个索引

我有一组可供所有用户使用的“任务”。用户可以勾选他们已经“完成了一项任务”。当他们这样做时,将调用一个方法,该方法将他们的 userId 添加到附加到名为“usersCompleted”的任务文档的数组中。如果用户完成了一项任务,他们的 userId 将在该数组中。

我不想将此数组发布到客户端,因为这样所有用户都可以访问其中包含其他 userId 的数组。

但是,我希望有一个助手来检查用户的 ID 是否在此数组中,然后返回“已检查”或“”。通过这种方式,用户可以看到他们已完成的任务。

在我的出版物中,我能够找到用户已完成的所有任务,但我无法从“usersCompleted”数组中仅返回他们的 ID。如果有人可以帮助我做到这一点,将不胜感激。

下面是我当前的代码,但 $elemMatch 没有被正确使用

0 投票
1 回答
34 浏览

mongodb - 根据在 Meteor 出版物中找到的条目添加条目

我想根据已找到的条目向 Meteor 出版物添加新条目。我有这样的:

我该如何管理它?

//编辑

好的,再一次:我的第一个对象看起来像:

第二个是这样的:

我想收到他们两个(作为平行条目)只知道_id第一个。