Array (List)
Last updated: 2026-10-09
Array (List)
Array holds an ordered list of any BSON values (including nested arrays and documents). Matching is membership: `{ tags: 'mongodb' }` matches docs whose tags contain the value. `$elemMatch` forces multiple conditions onto the same element. Indexing an array field builds a multikey index, expanding each element.
| Category | BSON Types |
|---|---|
| MongoDB Version | 1.0+ |
| Example Language | mongosh (Shell) |
📝 Syntax
{ tags: ["mongodb", "nosql"] }
db.posts.find({ tags: "mongodb" })
db.posts.find({ ratings: { $elemMatch: { score: { $gte: 4 }, user: "alice" } } })
Returns:The array value itself; queries return matching documents
▶ Example
Run the commands below in your local mongosh (requires a running mongod):
// Array: membership and $elemMatch
use shop
db.posts.insertOne({ tags: ['mongodb', 'tutorial'], ratings: [{ score: 5, user: 'alice' }] })
db.posts.find({ tags: 'mongodb' })
Output:
{ _id: ObjectId('...'), tags: ['mongodb', 'tutorial'], ratings: [{ score: 5, user: 'alice' }] }
📌 Notes
- Querying an array field means 'contains any element'
- $elemMatch applies all conditions to the same element
- Indexing an array yields a multikey index
🏷️ Related Tags
💡 Related Cases
📚 Related Tutorials
❓ FAQ
QDoes array matching require exact equality?
AMembership. { tags: 'a' } matches docs whose tags contain 'a', not whole-array equality.
QHow to match one element against several conditions?
AUse $elemMatch: { score: ..., user: ... } so all conditions hit the same element.
QCan arrays be indexed?
AYes — a multikey index is built, with every array element indexed separately.