Article Categories
- All Categories
-
Data Structure
-
Networking
-
RDBMS
-
Operating System
-
Java
-
MS Excel
-
iOS
-
HTML
-
CSS
-
Android
-
Python
-
C Programming
-
C++
-
C#
-
MongoDB
-
MySQL
-
Javascript
-
PHP
-
Economics & Finance
Selected Reading
Handling optional/empty data in MongoDB?
To handle optional or empty data in MongoDB, use the $ne operator to exclude null values, the $exists operator to check field presence, and combine operators to filter various empty states like null, empty strings, or missing fields.
Syntax
// Exclude null values
db.collection.find({ fieldName: { $ne: null } })
// Check if field exists
db.collection.find({ fieldName: { $exists: true } })
// Exclude null AND missing fields
db.collection.find({ fieldName: { $exists: true, $ne: null } })
Sample Data
db.handlingAndEmptyDataDemo.insertMany([
{ "StudentName": "John", "StudentCountryName": "" },
{ "StudentName": "John", "StudentCountryName": null },
{ "StudentName": "John" }
]);
{
"acknowledged": true,
"insertedIds": [
ObjectId("5c9cbd5ca629b87623db1b12"),
ObjectId("5c9cbd6ba629b87623db1b13"),
ObjectId("5c9cbd71a629b87623db1b14")
]
}
View all documents ?
db.handlingAndEmptyDataDemo.find().pretty();
{
"_id": ObjectId("5c9cbd5ca629b87623db1b12"),
"StudentName": "John",
"StudentCountryName": ""
}
{
"_id": ObjectId("5c9cbd6ba629b87623db1b13"),
"StudentName": "John",
"StudentCountryName": null
}
{
"_id": ObjectId("5c9cbd71a629b87623db1b14"),
"StudentName": "John"
}
Method 1: Using $ne to Exclude Null Values
db.handlingAndEmptyDataDemo.find({ StudentCountryName: { $ne: null } });
{
"_id": ObjectId("5c9cbd5ca629b87623db1b12"),
"StudentName": "John",
"StudentCountryName": ""
}
Method 2: Using $exists to Find Documents with Field Present
db.handlingAndEmptyDataDemo.find({ StudentCountryName: { $exists: true } });
{
"_id": ObjectId("5c9cbd5ca629b87623db1b12"),
"StudentName": "John",
"StudentCountryName": ""
}
{
"_id": ObjectId("5c9cbd6ba629b87623db1b13"),
"StudentName": "John",
"StudentCountryName": null
}
Method 3: Combining $exists and $ne
Find documents with non-empty, non-null country names ?
db.handlingAndEmptyDataDemo.find({
StudentCountryName: { $exists: true, $ne: null, $ne: "" }
});
Key Points
-
$ne: nullexcludes null values but includes missing fields and empty strings -
$exists: truefinds documents where the field exists (including null values) -
$exists: falsefinds documents missing the field entirely - Combine operators to handle multiple empty states simultaneously
Conclusion
Use $ne to exclude null values, $exists to check field presence, and combine both operators to effectively filter optional or empty data based on your specific requirements in MongoDB queries.
Advertisements
