使用不同条件查找多个结果MongoDB

时间:2018-08-01 21:50:52

标签: javascript node.js 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个主题,它仍然有效吗?

因此,我总体上担心的是,如何正确地做到这一点?我很确定这不是正确的方法。必须有一些更有效,更干净的东西。

0 个答案:

没有答案