$trim (Trim Both Ends)
Last updated: 2026-10-09
$trim (Trim Both Ends)
$trim removes whitespace (spaces, tabs, newlines) from both ends of a string, or strips a custom character set given by chars. It suits cleaning user input, log lines, or CSV fields. Without chars only whitespace is removed; with chars, every end character inside the set is stripped. Null or missing input yields null. Use $ltrim or $rtrim for one end only.
| Category | String |
|---|---|
| MongoDB Version | 1.0+ |
| Example Language | mongosh (Shell) |
📝 Syntax
{ $trim: { input: <string-expression>, chars: <charset> } }
⚙️ Parameters
| input | Required; the string to process. |
|---|---|
| chars | Optional custom charset to strip; whitespace by default. |
Returns:The trimmed string; null if input is null.
▶ Example
Run the commands below in your local mongosh (requires a running mongod):
// $trim: clean user-entered names
db.users.aggregate([
{ $project: { name: { $trim: { input: '$name' } } } }
])
Output:
{ "_id": 1, "name": "Alice" }
{ "_id": 2, "name": "Bob" }
📌 Notes
- Default whitespace includes spaces, tabs, carriage returns, and newlines
- Giving chars disables default whitespace stripping — include both if needed
- For one end only, use $ltrim or $rtrim
🏷️ Related Tags
💡 Related Cases
More hands-on cases coming soon.
📚 Related Tutorials
❓ FAQ
QWhat does it strip by default?
AWhitespace: spaces, tabs, newlines, carriage returns.
QCan I customize what to strip?
AYes — pass a charset via chars.
QWhat differs from $ltrim?
A$ltrim strips only the left end; $trim strips both.