javascript - 使用不同条件 MongoDB 查找多个结果
问题描述
所以我的问题是我有一系列文章。我的目标是从集合中获取许多不同的数组变体。我现在能想到的唯一方法就是链接。这似乎不是最好的选择。
我现在拥有的。
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 个主题,它仍然有效吗?
所以我总体关心的是如何以正确的方式做到这一点?我很确定这不是正确的方法。必须有更有效和更清洁的东西。