问题标签 [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.
meteor - Meteor 出版物/订阅未按预期工作
我有两个出版物。
第一个 pub 实现了搜索。尤其是这个搜索。
第二个基本返回一些字段
我订阅了每个出版物,如下所示:
所以这是我的问题:当我使用第二个订阅(to appointments.patients
)时,第一个不起作用。当我评论第二个订阅时,第一个订阅再次起作用。我不确定我在这里做错了什么。
mongodb - Meteor - 为什么不直接发布所有的收集数据?
这可能是一个很容易回答的问题,因为它可能只是我缺乏理解,但是如果您必须运行两次查询 - 一次在服务器上,一次在客户端上 - 为什么不只发布所有收集数据,并且然后只在客户端上运行一个查询?
显然我的意思不是为用户集合这样做,但是如果你有一个博客帖子集合,这不是有益的吗?
发布所有帖子数据,然后订阅它并在客户端上运行任何必要的查询来获取您需要的数据。
meteor - Meteor 中的重叠订阅是否会使性能变差?
这是我的问题。
我有一个应用程序,用户可以在其中将笔记存储在记事本中。
目前,当用户单击记事本时,我订阅了一个返回该记事本前 5 个笔记的出版物。
因此,每当用户导航到一个新的记事本时,就会设置一个新的订阅,并且该记事本的 5 个笔记最终会出现在 minimongo 中。所以 minimongo 一次在笔记集中只有 5 个笔记
为了改善用户体验,我更改了发布,因此在整个应用程序的初始加载时,我订阅了一个发布,该发布返回所有记事本和每个记事本的前 5 个笔记。因此,现在在 minimongo 中,我们始终拥有 (5 x (# of notepads)) 数量的笔记。
所以初始负载有点重,但我希望在那之后,在记事本之间导航要快得多。
因此,在加载时,我订阅myInfo
返回用户记事本和每个记事本的拳头 5 个笔记。
然后当你实际点击一个记事本时,我订阅了myNotepadInfo
,它也返回了记事本的前 5 个笔记。由于初始订阅已经检索到此信息,因此 minimongo 中的任何文档都没有实际更改。但我仍然想订阅,myNotepadInfo
因为我有一个加载更多注释机制,它依赖于模板中的订阅。
所以我的应用程序完全可以处理这些更改,但我不确定引擎盖下发生了什么,以及这种方法是否真的有助于提高性能。我没有注意到更改后记事本加载方式的具体差异。
所以基本上我有第二个订阅,它与初始订阅重叠。
在我看来,由于第二次订阅与最初的订阅重叠,它必须向客户端传输更少的文档,所以它应该更快?
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}});
如何修改该出版物以排除我用箭头突出显示的键“正确”?
问题数组 > 问题对象 > 答案数组 > 答案对象 > 正确键
mongodb - 如何根据 Meteor 发布中的某些谓词过滤子文档(数组)?
我试图过滤的不仅仅是字段,还有我的数组字段中的对象。参考下面的示例,对于分段字段,我希望我的客户只获取分段数组中的那些对象isReleased === true
示例架构
所以基本上,我希望我的客户收到,
javascript - MongoDB:如何获取主文档和所有祖先
我需要创建一个出版物,它为我提供了集合中的一组文档。在这里,您可以看到这些文档是如何相互关联的:
所以我知道的是第一个文档的 ID,我还需要出版物中的所有祖先。
meteor - Meteor Observer 重用:将我的发布返回查询更改为不使用 this.userId 会使我的观察者更可重用吗?
我有一个出版物,它返回一个看起来像这样的游标:
如您所见,查询对用户来说是唯一的,因为它包括this.userId
我this.userId
在出版物中使用作为一种安全形式。如果您与该特定记事本相关联,您只会取回数据。
在我的应用程序中,多人可以在一个记事本上进行协作。那么为了让观察者更可重用,这种调整会帮助我的应用程序吗?
我认为这就是观察者重用的意思。该发布为订阅它的任何用户返回完全相同的查询。那么这是否正确,这种优化值得改变吗?
javascript - MeteorJS 出版物超出范围
我有以下模板:
我已将出版物附加到reportsSummary
模板,但它似乎也扩展到reportsPatients
模板。我不知道为什么,因为我遵循了正确的方法来定义 pubs/subs(我认为......)。
我知道它正在扩展到,reportsPatients
因为如果我Appointments.find()
从reportsPatients
助手返回而不订阅出版物,我将获得也在reportsSummary
这是我的出版物:
这是我的订阅:
这并不是说我所拥有的东西本身就破坏了任何功能。当应用程序有大量数据需要筛选时,我只是担心效率。我在这里错过了什么吗?
arrays - 如何从 Meteor 出版物中的数组返回单个索引
我有一组可供所有用户使用的“任务”。用户可以勾选他们已经“完成了一项任务”。当他们这样做时,将调用一个方法,该方法将他们的 userId 添加到附加到名为“usersCompleted”的任务文档的数组中。如果用户完成了一项任务,他们的 userId 将在该数组中。
我不想将此数组发布到客户端,因为这样所有用户都可以访问其中包含其他 userId 的数组。
但是,我希望有一个助手来检查用户的 ID 是否在此数组中,然后返回“已检查”或“”。通过这种方式,用户可以看到他们已完成的任务。
在我的出版物中,我能够找到用户已完成的所有任务,但我无法从“usersCompleted”数组中仅返回他们的 ID。如果有人可以帮助我做到这一点,将不胜感激。
下面是我当前的代码,但 $elemMatch 没有被正确使用
mongodb - 根据在 Meteor 出版物中找到的条目添加条目
我想根据已找到的条目向 Meteor 出版物添加新条目。我有这样的:
我该如何管理它?
//编辑
好的,再一次:我的第一个对象看起来像:
第二个是这样的:
我想收到他们两个(作为平行条目)只知道_id
第一个。