$meta - Amazon DocumentDB

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

$meta

O operador $meta de agregação acessa os metadados associados aos documentos em um pipeline de agregação. É comumente usado para recuperar pontuações de pesquisa de texto e classificar os resultados por relevância.

Parâmetros

  • textScore: recupera a pontuação da pesquisa de texto indicando a relevância do documento para a consulta de pesquisa.

Exemplo (MongoDB Shell)

O exemplo a seguir demonstra o uso do $meta operador em um pipeline de agregação para recuperar e classificar por pontuações de pesquisa de texto.

Crie documentos de amostra

db.articles.createIndex({ content: "text" }); db.articles.insertMany([ { _id: 1, title: "Python Programming", content: "Python is a versatile programming language used for web development." }, { _id: 2, title: "Python Guide", content: "Learn Python programming with Python tutorials and Python examples." }, { _id: 3, title: "Java Basics", content: "Java is another popular programming language." } ]);

Exemplo de consulta

db.articles.aggregate([ { $match: { $text: { $search: "Python" } } }, { $addFields: { score: { $meta: "textScore" } } }, { $sort: { score: -1 } } ]);

Saída

[ { _id: 2, title: 'Python Guide', content: 'Learn Python programming with Python tutorials and Python examples.', score: 1.5 }, { _id: 1, title: 'Python Programming', content: 'Python is a versatile programming language used for web development.', score: 0.75 } ]

Exemplos de código

Para ver um exemplo de código para usar o operador de $meta agregação, escolha a guia do idioma que você deseja usar:

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 collection = db.collection('articles'); const result = await collection.aggregate([ { $match: { $text: { $search: "Python" } } }, { $addFields: { score: { $meta: "textScore" } } }, { $sort: { score: -1 } } ]).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'] collection = db['articles'] result = list(collection.aggregate([ { '$match': { '$text': { '$search': 'Python' } } }, { '$addFields': { 'score': { '$meta': 'textScore' } } }, { '$sort': { 'score': -1 } } ])) print(result) client.close() example()