1.Equality, range and array queries
A filter document is equality by default: { status: "shipped" } means exactly that value. Range queries add an operator like $gte. Querying a field that holds an array matches if any element matches.
Key features
- { field: value } is equality — no operator needed for "equals"
- { field: { $gte: 10, $lte: 20 } } combines two range bounds on one field
- Querying an array field with a scalar matches if any element equals it
- A range query on an array field matches if any element satisfies the range
- Equality on a whole array (field: [1, 2, 3]) requires an exact, same-order match
The three basic query shapes
- equality — { status: "shipped" }
- range — { price: { $gte, $lt } }
- array — matches any element
Command
db.<collection>.find({ <field>: <value> | { <operator>: <value> } })Equality is a bare value, range is an operator document, and a scalar filter on an array field matches if any element matches.