Joins "Hello", a space, and "World" to make "Hello World".
MongoDB
{ $concat: ["Hello", " ", "World"] }
Changes "hello" to "HELLO".
MongoDB
{ $toUpper: "hello" }
Changes "WORLD" to "world".
MongoDB
{ $toLower: "WORLD" }
Sample Program
This query creates three new fields for each user: fullName joins first and last names, shoutName makes the first name uppercase, and whisperName makes the last name lowercase.
Make sure the fields you use exist and contain strings to avoid errors.
$concat can join more than two strings, including spaces or symbols.
$toUpper and $toLower only affect letters; numbers and symbols stay the same.
Summary
$concat joins strings together.
$toUpper changes text to uppercase.
$toLower changes text to lowercase.
Practice
(1/5)
1. What does the MongoDB expression {$toUpper: "hello"} do?
easy
A. Joins the string "hello" with another string
B. Converts the string "hello" to lowercase "hello"
C. Converts the string "hello" to uppercase "HELLO"
D. Removes spaces from the string "hello"
Solution
Step 1: Understand $toUpper usage
The $toUpper operator converts all letters in a string to uppercase.
Step 2: Apply $toUpper to "hello" string
Applying $toUpper to "hello" changes it to "HELLO".
Final Answer:
Converts the string "hello" to uppercase "HELLO" -> Option C
Quick Check:
$toUpper("hello") = "HELLO" [OK]
Hint: Remember $toUpper makes all letters uppercase [OK]
Common Mistakes:
Confusing $toUpper with $toLower
Thinking $toUpper joins strings
Assuming it removes spaces
2. Which of the following is the correct syntax to concatenate two fields firstName and lastName in MongoDB aggregation?
easy
A. {$concat: "$firstName" + " " + "$lastName"}
B. {$concat: ["$firstName", " ", "$lastName"]}
C. {$concat: "$firstName", " ", "$lastName"}
D. {$concat: "$firstName $lastName"}
Solution
Step 1: Recall $concat syntax
$concat requires an array of strings or field references to join them.
Step 2: Check each option's syntax
{$concat: ["$firstName", " ", "$lastName"]} correctly uses an array with field references and a space string. Others misuse concatenation or array syntax.
Final Answer:
{$concat: ["$firstName", " ", "$lastName"]} -> Option B
Quick Check:
$concat needs array of strings [OK]
Hint: Use array syntax with $concat for multiple strings [OK]
Common Mistakes:
Using + operator inside $concat
Passing arguments without array brackets
Putting fields inside a single string
3. Given the document {"name": "alice", "surname": "smith"}, what is the output of this aggregation expression?
Hint: Apply $toUpper and $toLower before concatenation [OK]
Common Mistakes:
Assuming $toLower changes uppercase to title case
Mixing order of operations
Forgetting to use $concat array
4. Identify the error in this MongoDB aggregation expression:
{ $concat: "$firstName", " ", "$lastName" }
medium
A. Missing array brackets around the arguments for $concat
B. Using double quotes instead of single quotes
C. Incorrect field names without $ prefix
D. Using $concat instead of $toUpper
Solution
Step 1: Check $concat argument format
$concat requires a single array argument containing strings or field references.
Step 2: Identify missing array brackets
The expression passes multiple arguments without wrapping them in an array, causing syntax error.
Final Answer:
Missing array brackets around the arguments for $concat -> Option A
Quick Check:
$concat([...]) needs array brackets [OK]
Hint: Always wrap $concat inputs in an array [OK]
Common Mistakes:
Passing multiple arguments without array
Confusing $concat with string concatenation operator
Not prefixing field names with $
5. You want to create a new field fullName in your aggregation pipeline that combines firstName and lastName with a space, but both names should be in uppercase. Which expression correctly achieves this?
hard
A. {$concat: [{$toUpper: "$firstName"}, " ", {$toUpper: "$lastName"}]}
B. {$toLower: {$concat: ["$firstName", " ", "$lastName"]}}
C. {$concat: ["$firstName", " ", "$lastName"]}
D. {$toLower: {$concat: [{$toUpper: "$firstName"}, " ", {$toUpper: "$lastName"}]}}
Solution
Step 1: Understand requirement for uppercase names
Both firstName and lastName must be converted to uppercase individually before concatenation.
Step 2: Analyze each option's logic
{$concat: [{$toUpper: "$firstName"}, " ", {$toUpper: "$lastName"}]} applies $toUpper to each field separately, then concatenates with space. {$toLower: {$concat: ["$firstName", " ", "$lastName"]}} concatenates first, then lowercases whole string, resulting in lowercase. {$concat: ["$firstName", " ", "$lastName"]} does no uppercase. {$toLower: {$concat: [{$toUpper: "$firstName"}, " ", {$toUpper: "$lastName"}]}} converts final string to lowercase, which is wrong.
Final Answer:
{$concat: [{$toUpper: "$firstName"}, " ", {$toUpper: "$lastName"}]} -> Option A
Quick Check:
Uppercase each name then join with space [OK]
Hint: Uppercase each name before concat for correct result [OK]
Common Mistakes:
Uppercasing after concatenation changes space too
Not applying $toUpper to both fields
Using $toLower mistakenly
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.