我有一個集合fruits {name:'orange', id:1}....
和另一個users
,user
s有文檔favorites: [1,2,3]
。我想首先顯示favourite
水果,然後顯示其餘的。自定義排序的嵌套文檔
我可以先查詢兩次,如fruits.find({id: {$id:[user.favorites]}})
,然後not in
然後合併它們。
有沒有其他方法可以做到這一點?如果有,可以將自定義函數傳遞給sort
。我怎樣才能做到這一點?
我有一個集合fruits {name:'orange', id:1}....
和另一個users
,user
s有文檔favorites: [1,2,3]
。我想首先顯示favourite
水果,然後顯示其餘的。自定義排序的嵌套文檔
我可以先查詢兩次,如fruits.find({id: {$id:[user.favorites]}})
,然後not in
然後合併它們。
有沒有其他方法可以做到這一點?如果有,可以將自定義函數傳遞給sort
。我怎樣才能做到這一點?
不,流星不允許自定義排序功能。你可以做的,就是用sortBy()
和contains()
功能從underscore
庫到你的項目進行排序:
var fruitsSorted = _.sortBy(fruits.find(selector).fetch(), (fruit) => {
if(_.contains(user.favorites, fruit.id)){
return 0;
}
return 1;
});
你現在有fruitsSorted
排序後的數組。