Nearby lessons

16 of 22

🧵 MongoDB: String Operators

MongoDB provides powerful string operators for text manipulation, conversion, formatting, and pattern matching. These operators are mainly used within the aggregation pipeline to transform or analyze text data efficiently.

📚 Initial Data Setup — students Collection

MongoDB Shell
NoSQL
Database
1db.students.insertMany([
2 { _id: 1, name: 'Akshay Kumar', dob: 'jan 10 2010' },
3 { _id: 2, name: 'Salman Khan', dob: '2010-02-03' },
4 { _id: 3, name: 'Deepika Padukone', dob: 'june 15 2010' },
5 { _id: 4, name: 'John Abraham', dob: 'WED jan 31 12:05:28 +03:30 2010' },
6 { _id: 5, name: 'Katrina Kaif', dob: 'dec 22 2010' }
7]);
Query Result
JSON Output
✅ 5 student documents inserted successfully.

📘 Additional Data Setup — students2 Collection

MongoDB Shell
NoSQL
Database
1db.students2.insertMany([
2 { _id: 1, firstName: 'Akshay', lastName: 'Kumar', age: 25 },
3 { _id: 2, firstName: 'Salman', lastName: 'Khan', age: 23 },
4 { _id: 3, firstName: 'Deepika', lastName: 'Padukone', age: 24 },
5 { _id: 4, firstName: 'John', lastName: 'Abraham', age: 25 },
6 { _id: 5, firstName: 'Katrina', lastName: 'Kaif', age: 23 }
7]);
Query Result
JSON Output
✅ 5 student2 documents inserted successfully.

📗 Date Setup — students3 Collection

MongoDB Shell
NoSQL
Database
1db.students3.insertMany([
2 { _id: 1, name: "Akshay Kumar", dob: new ISODate("2008-01-15T08:15:39.736Z") },
3 { _id: 2, name: "Salman Khan", dob: new ISODate("2009-08-01T08:15:39.736Z") }
4]);
Query Result
JSON Output
✅ 2 student3 documents inserted successfully.

1️⃣ $toString — Convert Age to String

MongoDB Shell
NoSQL
Database
1db.students2.aggregate([
2 { $project: { age: 1, ageString: { $toString: "$age" } } }
3]);
Query Result
JSON Output
{ age: 25, ageString: "25" }

2️⃣ $toUpper — Convert to Uppercase

MongoDB Shell
NoSQL
Database
1db.students.aggregate([
2 { $project: { name: 1, upperName: { $toUpper: "$name" } } }
3]);
Query Result
JSON Output
{ name: "Akshay Kumar", upperName: "AKSHAY KUMAR" }

3️⃣ $toLower — Convert to Lowercase

MongoDB Shell
NoSQL
Database
1db.students.aggregate([
2 { $project: { name: 1, lowerName: { $toLower: "$name" } } }
3]);
Query Result
JSON Output
{ name: "Salman Khan", lowerName: "salman khan" }

4️⃣ $strLenBytes — Byte Length of String

MongoDB Shell
NoSQL
Database
1db.students.aggregate([
2 { $project: { name: 1, length: { $strLenBytes: "$name" } } }
3]);
Query Result
JSON Output
{ name: "Deepika Padukone", length: 16 }

5️⃣ $strLenCP — Code Point Length

MongoDB Shell
NoSQL
Database
1db.students.aggregate([
2 { $project: { name: 1, length: { $strLenCP: "$name" } } }
3]);
Query Result
JSON Output
{ name: "John Abraham", length: 12 }

6️⃣ $strcasecmp — Case-Insensitive Comparison

MongoDB Shell
NoSQL
Database
1db.students2.aggregate([
2 { $project: { name: 1, match: { $strcasecmp: ["$firstName", "akshay"] } } }
3]);
Query Result
JSON Output
{ name: "Akshay Kumar", match: 0 } // 0 means match

7️⃣ $substr — Deprecated Substring

MongoDB Shell
NoSQL
Database
1db.students.aggregate([
2 { $project: { name: 1, first3: { $substr: ["$name", 0, 3] } } }
3]);
Query Result
JSON Output
{ name: "Katrina Kaif", first3: "Kat" }

8️⃣ $substrBytes — Byte-Based Substring

MongoDB Shell
NoSQL
Database
1db.students.aggregate([
2 { $project: { name: 1, last5: { $substrBytes: ["$name", -5, 5] } } }
3]);
Query Result
JSON Output
{ name: "Salman Khan", last5: "Khan" }

9️⃣ $substrCP — Code Point Substring

MongoDB Shell
NoSQL
Database
1db.students.aggregate([
2 { $project: { name: 1, lastName: {
3 $substrCP: ["$name", { $add: [ { $indexOfCP: ["$name", " "] }, 1 ] }, 100]
4 } } }
5]);
Query Result
JSON Output
{ name: "Akshay Kumar", lastName: "Kumar" }

🔟 $replaceOne — Replace First Match

MongoDB Shell
NoSQL
Database
1db.students.aggregate([
2 { $project: { name: 1, modified: { $replaceOne: { input: "$name", find: "a", replacement: "@" } } } }
3]);
Query Result
JSON Output
{ name: "Katrina Kaif", modified: "K@trina Kaif" }

1️⃣1️⃣ $replaceAll — Replace All Matches

MongoDB Shell
NoSQL
Database
1db.students.aggregate([
2 { $project: { name: 1, modified: { $replaceAll: { input: "$name", find: "a", replacement: "@" } } } }
3]);
Query Result
JSON Output
{ name: "Katrina Kaif", modified: "K@trin@ K@if" }

1️⃣2️⃣ $concat — Combine Strings

MongoDB Shell
NoSQL
Database
1db.students2.aggregate([
2 { $project: { fullName: { $concat: ["$firstName", " ", "$lastName"] } } }
3]);
Query Result
JSON Output
{ fullName: "John Abraham" }

1️⃣3️⃣ $split — Split String into Array

MongoDB Shell
NoSQL
Database
1db.students.aggregate([
2 { $project: { name: 1, parts: { $split: ["$name", " "] } } }
3]);
Query Result
JSON Output
{ name: "Deepika Padukone", parts: ["Deepika", "Padukone"] }

1️⃣4️⃣ $ltrim — Left Trim

MongoDB Shell
NoSQL
Database
1db.students.aggregate([
2 { $project: { name: 1, clean: { $ltrim: { input: { $concat: [" ", "$name"] } } } } }
3]);
Query Result
JSON Output
{ name: "Salman Khan", clean: "Salman Khan" }

1️⃣5️⃣ $rtrim — Right Trim

MongoDB Shell
NoSQL
Database
1db.students.aggregate([
2 { $project: { name: 1, clean: { $rtrim: { input: { $concat: ["$name", " "] } } } } }
3]);
Query Result
JSON Output
{ name: "Akshay Kumar", clean: "Akshay Kumar" }

1️⃣6️⃣ $trim — Trim Both Sides

MongoDB Shell
NoSQL
Database
1db.students.aggregate([
2 { $project: { name: 1, clean: { $trim: { input: { $concat: [" ", "$name", " "] } } } } }
3]);
Query Result
JSON Output
{ name: "John Abraham", clean: "John Abraham" }

1️⃣7️⃣ $dateFromString — Convert String to Date

MongoDB Shell
NoSQL
Database
1db.students.aggregate([
2 { $project: { name: 1, dobDate: { $dateFromString: { dateString: "$dob"} } } }
3]);
Query Result
JSON Output
{ name: "Akshay Kumar", dobDate: ISODate("2010-01-10T00:00:00Z") }

1️⃣8️⃣ $dateToString — Convert Date to String

MongoDB Shell
NoSQL
Database
1db.students3.aggregate([
2 { $project: { name: 1, dobStr: { $dateToString: { format: "%Y-%m-%d", date: "$dob" } } } }
3]);
Query Result
JSON Output
{ name: "Salman Khan", dobStr: "2009-08-01" }

1️⃣9️⃣ $indexOfBytes — Find Byte Position

MongoDB Shell
NoSQL
Database
1db.students.aggregate([
2 { $project: { name: 1, pos: { $indexOfBytes: ["$name", "K"] } } }
3]);
Query Result
JSON Output
{ name: "Akshay Kumar", pos: 7 }

2️⃣0️⃣ $indexOfCP — Find Code Point Position

MongoDB Shell
NoSQL
Database
1db.students.aggregate([
2 { $project: { name: 1, pos: { $indexOfCP: ["$name", "K"] } } }
3]);
Query Result
JSON Output
{ name: "Katrina Kaif", pos: 0 }

2️⃣1️⃣ $regexFind — Find First Regex Match

MongoDB Shell
NoSQL
Database
1db.students.aggregate([
2 { $project: { name: 1, match: { $regexFind: { input: "$name", regex: "K.*n" } } } }
3]);
Query Result
JSON Output
{ name: "Salman Khan", match: { match: "Khan", idx: 7, captures: [] } }

2️⃣2️⃣ $regexFindAll — Find All Regex Matches

MongoDB Shell
NoSQL
Database
1db.students.aggregate([
2 { $project: { name: 1, matches: { $regexFindAll: { input: "$name", regex: "a" } } } }
3]);
Query Result
JSON Output
{ name: "Katrina Kaif", matches: [{ match: "a", idx: 1 }, { match: "a", idx: 6 }, { match: "a", idx: 9 }] }

2️⃣3️⃣ $regexMatch — Regex Test

MongoDB Shell
NoSQL
Database
1db.students.aggregate([
2 { $project: { name: 1, hasK: { $regexMatch: { input: "$name", regex: "K" } } } }
3]);
Query Result
JSON Output
{ name: "Akshay Kumar", hasK: true }
Keep Going!MongoDB - Date Operators