0
我需要将min
和max
字段添加到发布函数中的集合项目中,并通过此文件筛选项目。我找到了解决方案,通过使用forEach
对光标:流星游标数和forEach
Meteor.publish 'productsWithMinMax', (filter, options) ->
Products.find(filter, options).forEach (p) =>
p.min = Math.min p.price1, p.price2, p.price3, p.price4
p.max = Math.max p.price1, p.price2, p.price3, p.price4
if p.min && p.max && (p.max < p.mainPrice || p.min > p.mainPrice)
@added "products", p._id, p
Counts.publish @, 'numberOfProductsWithMinMax', Products.find(filter), {noReady: true}
@ready()
但现在Counts.publish
返回错误计数我的光标。在这种情况下如何计算我的光标?
只有符合max/min/mainPrice标准的文档才被发布至关重要吗?如果没有,似乎只是发布所有匹配的产品,然后在客户端上使用转换/助手来确定您需要哪些产品(作为奖励,这也会给您带来反应性)会更容易。 –
@DavidWeldon感谢您的想法。我有大约3k的产品在收藏。发布一切是否可以? – Deadly
可能不会 - 这会在用户体验可能受到影响的情况下达到极限。我认为'过滤器'会减少设置一些较小的初始大小 - 是不是这种情况? –