$split - Amazon DocumentDB

$split

The $split aggregation operator in Amazon DocumentDB is used to split a string into an array of substrings, based on a specified delimiter. This can be useful for parsing complex string fields and extracting individual components for further processing.

Parameters

  • string: The string to be split.

  • delimiter: The character or string used to split the input string.

Example (MongoDB Shell)

In this example, we use $split to separate the components of a "Desk" field into an array, making it easier to process the data.

Create sample documents

db.people.insertMany([ { "_id": 1, "Desk": "Düsseldorf-BVV-021" }, { "_id": 2, "Desk": "Munich-HGG-32a" }, { "_id": 3, "Desk": "Cologne-ayu-892.50" }, { "_id": 4, "Desk": "Dortmund-Hop-78" } ]);

Query example

db.people.aggregate([ { $project: { parts: { $split: ["$Desk", "-"] } } } ]);

Output

{ "_id" : 1, "parts" : [ "Düsseldorf", "BVV", "021" ] } { "_id" : 2, "parts" : [ "Munich", "HGG", "32a" ] } { "_id" : 3, "parts" : [ "Cologne", "ayu", "892.50" ] } { "_id" : 4, "parts" : [ "Dortmund", "Hop", "78" ] }

The output of $split creates an array that can be used in the application to display the information for the employees.

Code examples

To view a code example for using the $split command, choose the tab for the language that you want to use:

Node.js
const { MongoClient } = require('mongodb'); async function example() { const client = await MongoClient.connect('mongodb://<username>:<password>@<cluster-endpoint>:27017/?tls=true&tlsCAFile=global-bundle.pem&replicaSet=rs0&readPreference=secondaryPreferred&retryWrites=false'); const db = client.db('test'); const result = await db.collection('people').aggregate([ { $project: { parts: { $split: ['$Desk', '-'] } } } ]).toArray(); console.log(result); await client.close(); } example();
Python
from pymongo import MongoClient def example(): client = MongoClient('mongodb://<username>:<password>@<cluster-endpoint>:27017/?tls=true&tlsCAFile=global-bundle.pem&replicaSet=rs0&readPreference=secondaryPreferred&retryWrites=false') db = client.test result = list(db.people.aggregate([ { '$project': { 'parts': { '$split': ['$Desk', '-'] } } } ])) print(result) client.close() example()