Javascript 流星火焰模板助手等待集合查找;选择DISTINCT";
此Meteor客户端代码需要按字段“category”对mongo集合中的文档进行分组,并返回字段“category”的唯一值的排序数组。我正在使用Blaze template helper,它返回一个由Javascript 流星火焰模板助手等待集合查找;选择DISTINCT";,javascript,meteor,Javascript,Meteor,此Meteor客户端代码需要按字段“category”对mongo集合中的文档进行分组,并返回字段“category”的唯一值的排序数组。我正在使用Blaze template helper,它返回一个由集合填充的数组。find.foreach,因为我找不到关于如何聚合客户端的mongo集合的简单示例,如何让helper等待集合操作准备就绪?谢谢 “作业”:函数(){ 让类别=[] Jobs.find({}).forEach((doc)=>{ 如果(!categories.includes(单
集合填充的数组。find.foreach
,因为我找不到关于如何聚合客户端的mongo集合的简单示例,如何让helper等待集合操作准备就绪?谢谢
“作业”:函数(){
让类别=[]
Jobs.find({}).forEach((doc)=>{
如果(!categories.includes(单据类别))categories.push(单据类别)
})
returncategories.sort()
}
所有给定的代码都不需要Mongo的聚合函数,但可以通过正常的查询功能解决:
如果(!categories.includes(doc.category))
可以使用$in
操作符解决,而排序()
可以使用排序
转换操作解决:
“作业”:函数(){
返回Jobs.find({category:{$in:categories}},{sort:{categories:1}})
},
返回的值是一个Mongo.Cursor
,它将触发对更改的反应
阅读资料:
此解决方案需要填充的数组
categories
,该数组为空,因此不起作用。我用一个例子更新了我的帖子,我所需要的只是字段“category”的唯一值,而事先不知道它们。看来你是在问如何让助手等到收集操作准备就绪?
。您能解释一下为什么这是您试图解决的问题,或者它的行为不符合您的要求吗?returncategories.sort()
返回未定义的。不,它没有。至少不需要,除非您在其他地方(未显示)添加了影响Array.prototype.sort
实现的代码<代码>返回值:排序后的数组。不返回未定义的
。是。你说得对。问题解决了。非常感谢。