首页 > 解决方案 > 使用不同条件 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 个主题,它仍然有效吗?

所以我总体关心的是如何以正确的方式做到这一点?我很确定这不是正确的方法。必须有更有效和更清洁的东西。

标签: javascriptnode.jsmongodb

解决方案


推荐阅读