Element Operators
Element Operators: free step-by-step lesson with examples, common mistakes, and interview tips — part of MongoDB Tutorial on Toolliyo Academy.
On this page
MongoDB Tutorial · Lesson 24 of 100
Element Operators
Foundations & CRUD ✓ → Queries & Schema → Aggregation & Scale → Atlas & Projects
Queries & Schema · 2 — Design · ~6 min · MongoDB — Query Operators
What is this?
Element operators inspect field presence and BSON type: $exists and $type. They help clean messy, evolving documents.
Why should you care?
After schema changes, some users have phone and some do not. Migrations and APIs need $exists to find incomplete profiles.
See it live — copy this example
Open mongosh or MongoDB Compass, select database nosqlverse, then run the example. Change one field and run again.
db.users.insertMany([
{ username: "a", email: "a@x.com", phone: "98..." },
{ username: "b", email: "b@x.com" },
{ username: "c", email: 1001 }
])
db.users.find({ phone: { $exists: true } })
db.users.find({ email: { $type: "string" } })
db.users.find({ email: { $type: "int" } })
Run Example »
Edit the code below and click Run to see the result in Toolliyo’s live editor.
What happened?
- First query returns users with a phone field.
- Second keeps string emails (a and b).
- Third finds the bad document where email was stored as an int.
- $type protects query correctness.
Practice next
- Insert the three users.
- Find missing phone with phone: { $exists: false }.
- Fix user c with updateOne $set email string.
- Find documents where address.city $exists true.
- Query $type: "date" on joinedAt.
Remember
$exists checks if a field is present. $type checks BSON type. Use them for data cleanup and validation.
KYC incomplete list
Compliance finds users where pan: { $exists: false } to send reminder emails.
Outcome: Only incomplete profiles are nudged.
Interview prep for this lesson
Practice these questions aloud after reading—each links to a full structured answer.
Sign in to ask a question or upvote helpful answers.
No questions yet — be the first to ask!