How to make query for 3 level nested object in mongodb

Viewed 109

I am trying to query and filter objects by comparing specific fields inside 3rd level of my objects. I am not sure how to use filter with $lte or $gte in the third level. For example, in my object below I wanted to filter documents whose delivery time (delivery_rule -> time -> $lte: max) but I can't get it using this query:

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

and my schema is :

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);

When I run my query using filters.time = 30 in the shell it returns me [] objects, but I have 5 objects with time 60.

1 Answers

The one that I did works well. I got a little confusion in testing))

Related