$meta (Text Search Metadata)
Last updated: 2026-10-09
$meta (Text Search Metadata)
$meta projects metadata from a $text search, most commonly the relevance score textScore. `{ score: { $meta: 'textScore' } }`. It works only with a $text query, and you must project textScore before sorting by it — the pattern behind relevance-ranked search results.
| Category | Projection |
|---|---|
| MongoDB Version | 2.6+ |
| Example Language | mongosh (Shell) |
📝 Syntax
{ <output field>: { $meta: 'textScore' } }
⚙️ Parameters
| output field | The field that receives the metadata, e.g. score. |
|---|---|
| metadata name | Currently 'textScore'. |
Returns:Query results with an extra metadata field
▶ Example
Run the commands below in your local mongosh (requires a running mongod):
// $meta: project textScore and sort by relevance
db.articles.find(
{ $text: { $search: 'mongodb' } },
{ title: 1, score: { $meta: 'textScore' } }
).sort({ score: { $meta: 'textScore' } })
Output:
// Returns titles with relevance scores, sorted descending
📌 Notes
- Works only with a $text query
- Project textScore before sorting by it
- Higher textScore means higher relevance
🏷️ Related Tags
💡 Related Cases
More hands-on cases coming soon.
📚 Related Tutorials
❓ FAQ
QWhich metadata can $meta return?
AMainly textScore, the text relevance score.
QWhy project textScore before sorting?
Asort can only reference fields visible to the query, so project it first.
QDoes $meta work only with $text?
AYes, it is specific to text search.