如何在mongodb中查询3级嵌套对象

时间:2020-09-11 11:30:47

标签: node.js mongodb mongoose

我正在尝试通过比较对象第三级内部的特定字段来查询和过滤对象。我不确定如何在第三级中将过滤器与$ lte或$ gte一起使用。例如,在下面的对象中,我想过滤文档的发送时间(delivery_rule-> time-> $ lte:max),但无法通过以下查询获取它:

 if (filters.time) {
             query = {
               ...query,
               "delivery_rule.time.max": { $lte: filters.time }
                };
            }

我的模式是:

var VendorSchema = new mongoose.Schema({
   ...,
   delivery_rule: {
           ...,
           time: {
                min: {
                    type: Number,
                    default: 0
                },
                mid: {
                    type: Number,
                    default: 0
                },
                max: {
                    type: Number,
                    default: 0
                }
            },
      });
module.exports = mongoose.model("Vendor", VendorSchema);

当我在shell中使用filters.time = 30运行查询时,它返回我[]个对象,但是我有5个对象,时间为60。

1 个答案:

答案 0 :(得分:0)

我做的很好。我在测试中有些困惑))

相关问题