繁体   English   中英

MongoDB 查找文档但排除那些没有该字段的文档

[英]MongoDB find documents but exclude those without the field

我正在尝试查询一个集合并按每条记录中不存在的字段对其进行排序。 例如我打电话给这个:

exports.getProductPriceByLosers = (req,res) => {
    Market.find()
        .sort({ "analytics.one_day_change": 1 })
        .select('analytics.one_day_change name')
        .limit(10)
        .exec((err, data) => {
            if (err){
                return res.status(400).json({
                    error: 'No products found'
                })
            }
            res.json(data)
        })
}

然而,“one_day_change”字段并不存在于每条记录中,因此我得到的结果是首先没有该字段的大约 20 个产品,然后它返回我确实需要的产品并以正确的排序。 有没有办法告诉 mongo 不要返回那些我不需要/没有我需要的数据的文件?

谢谢!! X

您可以使用$exists: true仅获取该字段存在的文档。

exports.getProductPriceByLosers = (req,res) => {
    Market.find({"analytics.one_day_change":{ "$exists": true}})
        .sort({ "analytics.one_day_change": 1 })
        .select('analytics.one_day_change name')
        .limit(10)
        .exec((err, data) => {
            // ...
        })
}

检查这个例子

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM