我有一个需要搜索的Mongo集合,返回的结果排序如下:
我的用例是用户有一组我喜欢在列表中首先显示的'favourited'项目。我将id列表存储在用户的文档中。
有办法解决这个问题吗?
答案 0 :(得分:0)
正如上面提到的@Challet一样,添加了模板,以避免连接两个搜索结果并在这个过程中保持两个列表都是反应性的:
<强> HTML:强>
<template name="myTemplate">
{{#each favorites}}
{{> detail}}
{{/each}}
{{#each nonFavorites}}
{{> detail}}
{{/each}}
</template>
<template name="detail">
... layout details here ...
</template>
<强> JS:强>
var idsOfFavorites = []; // however you maintain this
Template.myTemplate.helpers({
favorites: function(){
return MyCollection.find({ _id: { $in: idsOfFavorites }},
{ sort: { createdAt: -1 }}); // sorting by createdAt but could be any field
},
nonFavorites: function(){
return MyCollection.find({ _id: { $nin: idsOfFavorites }},
{ sort: { createdAt: -1 }});
}
});