所以我的问题是我有一些文章集。我的目标是从集合中获得数组的许多不同变体。我现在想到的唯一方法是链接。这似乎不是最好的选择。
我现在所拥有的。
const shownIDs = [];
const news = {};
Post.find({ _id: { $nin: shownIDs }, active: true, tags: { $in: ["garden"] } }).sort({ $natural: -1 }).limit(6).exec().then(g => {
const gardenNews = sortByLevel(g).slice(0, 3);
gardenNews.forEach(h => { shownIDs.push(h._id) });
news.garden = gardenNews;
return news;
})
.then(e => {
Post.find({ _id: { $nin: shownIDs }, active: true, tags: { $in: ["lifestyle"] } }).sort({ $natural: -1 }).limit(6).exec().then(lifestyle => {
const lifestyleNews = sortByLevel(lifestyle).slice(0, 3);
lifestyleNews.forEach(h => { shownIDs.push(h._id) });
news.lifestyle = lifestyleNews;
return news;
})
.then(e => {
Post.find({ _id: { $nin: shownIDs }, active: true }).sort({ $natural: -1 }).limit(25).exec().then(more => {
news.more = more;
return news;
})
.then(e => {
res.status(200).json(e);
})
})
})
有些排序功能在理想情况下会被查询条件所取代。
现在让我们说我还想再讲20个主题,它仍然有效吗?
因此,我总体上担心的是,如何正确地做到这一点?我很确定这不是正确的方法。必须有一些更有效,更干净的东西。