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 } },
]
released
query = [
{ "$sort": { "released": -1 } },
{ "$limit": 5 },
]
released
5
resultsquery = [
{ "$sort": { "released": -1 } },
{ "$limit": 5 },
{ "$project": { "title": 1, "_id": 0 } }
]
released
5
results"title"
columnquery = [
{ "$sort": { "released": -1 } },
{ "$limit": 5 },
{ "$project": { "title": 1, "_id": 0 } }
]
released
5
results"title"
columnTitle |
---|
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