I’m designing a MongoDB query where I want to select documents based on a numeric field, but also include documents where the field is missing. For example, consider a collection with an age field:
// Option 1: Using $not
db.collection.find({ age: { $not: { $lt: 18 } } })
// Option 2: Using $or + $exists: false
db.collection.find({
  $or: [
    { age: { $gte: 18 } },
    { age: { $exists: false } }
  ]
})
Both queries return the same results — documents with age >= 18 or where age is missing.
My questions are:
- 
Which of these query patterns is generally more efficient in terms of index utilization? 
- 
Does MongoDB treat $not differently internally when the field is missing? 
- 
Are there situations where one approach scales better, especially with compound indexes? 
I would like to understand best practices for writing queries that include missing fields while taking full advantage of available indexes.