我不知道如何從Mongo數據中獲得有序列表。我需要return
.find()
來自mongo collection的結果,以這種方式:排序在MongoDB中
例如! 起初,我對汽車行駛10個文件的一個集合:
//doc structure:
{
_id: 10,
name: name,
type: [suv, sedan, sport],
driver: [object Driver]
pubDate: new Date()
}
而對於第二個,我有兩個關口。有兩種類型的驅動程序:
//doc structure:
{
_id: 20,
name: name,
type: stupid 'or' clever
}
,現在我想在這個順序返回列表,例如:
- 名稱:福特福克斯,驅動程序:{名稱:尼克,類型:聰明 },pubDate:20:00;
- 名稱:日產GTR,司機:{姓名:安德魯,類型:聰明},pubDate:19:00;
- name:Jaguar xKR,driver:{name:John,type:clever},pubDate:15:00;
- 名稱:本田雅閣,驅動程序:{名稱:切赫,類型:聰明},發佈時間:14:00
- 名稱:日產GTR,驅動程序:{名字:安德魯,類型:聰明} ,pubDate:13:00;
- 姓名:特斯拉,司機:{姓名:豪爾赫,類型:愚蠢},pubDate:20:00;
- 姓名:奧迪q7,司機:{姓名:佩吉,類型:愚蠢},pubDate:19:00;
- 名稱:寶馬325,司機:{姓名:米妮,類型:愚蠢},pubDate:18:00;
- 姓名:CADILLAC,司機:{姓名:蒂莫西,類型:愚蠢},pubDate:16:00;
- 姓名:SAAB,司機:{姓名:朱莉婭,類型:愚蠢},pubDate:15:00;
現在,我有一個解決方案,但它是不正確的,它不適用於無限滾動。流星例如:
// declare collections
Cars = Mongo.collection('cars', {
name: name,
type: [suv, sedan, sport],
driver: [object Driver]
pubDate: new Date()
});
Driver = Mongo.collection('cars', {
name: name,
lastName: lastName,
type: stupid // or clever
});
// declare helpers for client:
Template.carList.helpers({
'clever': function() {
return Cars.find({driver.type: 'clever'}, {sort: {pubDate: -1});
// returned only clever
},
'stupid': function() {
return Cars.find({driver.type: 'stupid'}, {sort: {pubDate: -1});
// returned only stupid
}
}):
和HTML與Blaze:
<template name='carList'>
...
{{#each clever}}
...
{{/each}}
{{#each stupid}}
...
{{/each}}
</template>
它的工作,但它不是靈活的方式,因爲如果我需要設置一些新的參數排序,我會得到很多問題它。而這個例子有一個Drivers集合,但是如果用戶類型將在不同的集合中,比如愚笨的&聰明?
我認爲必須有一個更優雅的方式來聚合這個。
哪個?謝謝!
爲什麼你不能將你想要排序的列作爲參數傳遞給你的'聰明'和'愚蠢'幫手。 – CodeChimp
你能舉一些例子嗎? –