如何排序" instock:0"要查询结束的项目

时间:2015-10-16 00:03:49

标签: mongodb meteor

我的流星应用程序中有一个产品光标,每个产品都通过&#34; instock&#34;来了解它的当前库存。属性。产品在商店中按字母顺序排序,但我希望将instock <= 0instock === 0的所有产品分类到搜索结果的底部。

我在meteor中尝试了以下排序选项。

options = {sort: [['instock', 'desc], [name]] }

这会将所有instock === 0属性放到光标的末尾,但不会保留其他产品的字母排序。

meteor和MongoDB中是否有办法将具有特定值的字段放到结果的末尾?

1 个答案:

答案 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>