自定义排序的嵌套文档

时间:2015-11-28 09:19:38

标签: mongodb sorting meteor

我有一个集合fruits {name:'orange', id:1}....,另一个usersuser有文档favorites: [1,2,3]。我想首先展示favourite水果,然后展示其余水果。

我可以使用fruits.find({id: {$id:[user.favorites]}})然后使用not in进行两次查询,然后合并它们。

还有其他办法吗?是否有可能将自定义函数传递给sort,如果是这样的话。我怎么能这样做?

2 个答案:

答案 0 :(得分:1)

不,Meteor不允许自定义排序功能。您可以使用sortBy()库中的contains()underscore函数对商品进行排序:

fruitsSorted

您现在在<div class="container"> <div class="col-md-3 affix"> sidebar is here </div> <div class="col-md-9"> main content </div> </div> 中有一个已排序的数组。

答案 1 :(得分:1)

假设您已查询所有水果的fruits集合。

var fruits = [
    { name: 'orange', id: 1},
    { name: 'apple', id: 2},
    { name: 'banana', id: 3}
];

现在,您可以使用sortBy库中的includeslodash功能按用户收藏夹对水果进行排序。

var sortedFruits = _.sortBy(fruits, function(fruit) {
    return _.includes(user.favourites, fruit.id) ? 0 : 1;
});