Text-to-Query Agents with MongoDB and LangGraph
Apoorva Joshi
Senior AI/ML Developer Advocate, MongoDB








Example SQL Query
SELECT *
FROM table
WHERE year>=1950
LIMIT 5
Example JSON-like Input
{ "$and": [
{"year": {"$gte": 1990}},
{"year": {"$lt": 2000}}
]
}
MongoDB Query Methods
.find(), .insert(), .update(), .delete()| _id | Title | Release Year | Cast | Genres |
|---|---|---|---|---|
| 573a1396f29313caabce3d17 | Larks on a String | 1990 | [Rudolf Hrusènskè, Vlastimil Brodskè] | [Comedy, Drama, Romance] |
| 573a1398f29313caabceab72 | The Witching of Ben Wagner | 1990 | [Sam Bottoms, Harriet Hall, Bettina Rae, Justin Gocke] | [Family] |
| ... | ... | ... | [...] | [...] |
query = {"genre": "Romance"}
query = {"genre": "Romance"}
| _id | Title | Release Year | Cast | Genres |
|---|---|---|---|---|
| 573a1390f29313caabcd6377 | Wild and Woolly | 1917 | [Douglas Fairbanks, Eileen Percy, Calvert Carter, Charles Stevens] | [Comedy, Western, Romance] |
| 573a1391f29313caabcd70b4 | The Four Horsemen of the Apocalypse | 1921 | [Pomeroy Cannon, Josef Swickard, Bridgetta Clark, Rudolph Valentino] | [Drama, Romance, War] |
query = { "$and": [
{"year": {"$gte": 1990}},
{"year": {"$lt": 2000}}
]
}
query = { "$and": [
{"year": {"$gte": 1990}},
{"year": {"$lt": 2000}}
]
}
| _id | Title | Release Year | Cast | Genres |
|---|---|---|---|---|
| 573a1396f29313caabce3d17 | Larks on a String | 1990 | [Rudolf Hrusènskè, Vlastimil Brodskè] | [Comedy, Drama, Romance] |
| 573a1398f29313caabceab72 | The Witching of Ben Wagner | 1990 | [Sam Bottoms, Harriet Hall, Bettina Rae, Justin Gocke] | [Family] |

db.<collection>.aggregate([
{stage-1},
{stage-2},
{stage-3},
{stage-4},
])
query = []
query = [{ "$sort": { "released": -1 } },]
releasedquery = [{ "$sort": { "released": -1 } },{ "$limit": 5 },]
released5 resultsquery = [{ "$sort": { "released": -1 } },{ "$limit": 5 },{ "$project": { "title": 1, "_id": 0 } }]
released5 results"title" columnquery = [{ "$sort": { "released": -1 } },{ "$limit": 5 },{ "$project": { "title": 1, "_id": 0 } }]
released5 results"title" column| Title |
|---|
| The Treasure |
| Knight of Cups |
| Sand Castles |
| Shut In |
| Dègradè |
| _id | Title | Release Year | Cast | Genres |
|---|---|---|---|---|
| 573a1396f29313caabce3d17 | Larks on a String | 1990 | [Rudolf Hrusènskè, Vlastimil Brodskè] | [Comedy, Drama, Romance] |
| 573a1398f29313caabceab72 | The Witching of Ben Wagner | 1990 | [Sam Bottoms, Harriet Hall, Bettina Rae, Justin Gocke] | [Family] |
| ... | ... | ... | [...] | [...] |
query = [{ "$unwind": "$genres" },{ "$group": { "_id": "$genres", "numMovies": { "$sum": 1 } }},{ "$match": { "numMovies": { "$gte": 50 } } }]
| Genre | Count |
|---|---|
| Drama | 12385 |
| Comedy | 6532 |
| Romance | 3318 |
| Crime | 2457 |
| Thriller | 2454 |
| ... | ... |
Pipeline Stages
$match, $group, $facet, $geoNear, $lookup, $merge, $search, $sort...Operators
$eq, $gt, $gte, ...$add, $multiply, $divide...$push, $reduce, ...$toUpper, $toLower, ...$dateAdd, $dateDiff, ...Text-to-Query Agents with MongoDB and LangGraph