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

Example01
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

Example02
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

Example03
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

Example04
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

Example05
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

Example06
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

Example07
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

Example08
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

Example09
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

Example10
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

Example11
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

Example12
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

Example13
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

Example14
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

Example15
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

Example16
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

Example17
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

Example18
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

Example19
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

Example20
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

Example21
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

Example22
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

Example23
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

Example24
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

Example25
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

Example26
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 }