Search Fundamentals / Creating an Atlas Search Query
Code Recap: Creating an Atlas Search Query
Create an Atlas Search query using $search
In the following example, the compound operator is used with a must clause inside the $search stage to find movies based on keywords in the title and plot fields and that fall into a specific date range. It uses the $limit stage to show only the top 10 results and the $project stage to only return the title, plot, and released fields.
db.movies.aggregate([
{
$search: {
index: "titlePlotReleasedIndex",
compound: {
must: [
{
text: {
query: "investigation",
path: ["title", "plot"],
fuzzy: {}
}
},
{
range: {
path: "released",
gte: ISODate("2000-01-01T00:00:00Z"),
lte: ISODate("2010-12-31T23:59:59Z")
}
}
]
}
}
},
{
$limit: 10
},
{
$project: {
_id: 0,
title: 1,
plot: 1,
released: 1
}
}
]);