讓我清楚地表明,如果以前製作過,我會很樂意接受對此問題的答案的鏈接。我不確定如何在搜索引擎中毫不留情地使用它,抱歉。Mongo:在數組字段中按項存在,然後按時間戳字段排序
我有一篇名爲的博客文章集。這些文章有關聯的存儲陣列中的字段標籤(稱爲tags
)。他們也有一個帖子時間戳字段
所以收集看起來像這樣(被稱爲on
):
[
{
_id: '526dd103f00c470200000001',
title: 'Lorem ipsum 1.',
body: 'Dolor sit amet 1.',
tags: ['lorem', 'ipsum'],
on: 1000
},
{
_id: '526fda069909000200000002',
title: 'Lorem ipsum 2.',
body: 'Dolor sit amet 2.',
tags: ['lorem', 'ipsum', 'pinned'],
on: 2000
},
{
_id: '527366a11f58a90200000001',
title: 'Lorem ipsum 3.',
body: 'Dolor sit amet 3.',
tags: ['lorem', 'ipsum'],
on: 3000
},
// Etc.
]
我想文章按日期排序(降序),但我也希望包含標籤「固定」的文章始終顯示在頂部。所以結果集應該是這樣的:
[
{
_id: '526fda069909000200000002',
title: 'Lorem ipsum 2.',
body: 'Dolor sit amet 2.',
tags: ['lorem', 'ipsum', 'pinned'],
on: 2000
},
{
_id: '527366a11f58a90200000001',
title: 'Lorem ipsum 3.',
body: 'Dolor sit amet 3.',
tags: ['lorem', 'ipsum'],
on: 3000
},
{
_id: '526dd103f00c470200000001',
title: 'Lorem ipsum 1.',
body: 'Dolor sit amet 1.',
tags: ['lorem', 'ipsum'],
on: 1000
}
// Etc.
]
我想要做的是使用蒙戈aggregrations,地圖,減少,或類似的東西給結果排序數據庫本身的內部設置。
我只能做2個查詢(其中一個只包括固定的帖子,另一個包括只有未固定的帖子,都是按日期排序),並使用JavaScript(服務器是nodejs)加入它們,但希望知道更好的方法。
P.S .:我使用node-mongodb-native驅動程序。
謝謝。
你可以用一兩個文檔的樣本編輯你的答案。然後,我們有一些工作。 –
剛剛添加它,@NeilLunn。 –
這是否應該有一個日期字段?你說你想排序。你可以添加他們嗎? –