我的流星应用程序中有一个产品光标,每个产品都通过&#34; instock&#34;来了解它的当前库存。属性。产品在商店中按字母顺序排序,但我希望将instock <= 0
或instock === 0
的所有产品分类到搜索结果的底部。
我在meteor中尝试了以下排序选项。
options = {sort: [['instock', 'desc], [name]] }
这会将所有instock === 0属性放到光标的末尾,但不会保留其他产品的字母排序。
meteor和MongoDB中是否有办法将具有特定值的字段放到结果的末尾?
答案 0 :(得分:1)
据我所知,您需要创建两个单独的游标并逐个显示。这是因为Mongo中的选择器与选项分开。选择器用于过滤数据,这些选项用于对数据进行排序等。
示例模板助手:
stockedItems: function(){
return products.find({},{instock:{$gt:0}},{sort:{name:-1}})
}
outOfStockItems: functions(){
return products.find({},{instock:{$lte:0}},{sort:{name:-1}})
}
示例模板:
<ul>
{{#each stockedItems}}
<li>{{Title}}</li>
{{/each}}
{{#each outOfStockItems}}
<li>{{Title}}</li>
{{/each}}
</ul>