$meta - Amazon DocumentDB

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

$meta

El $meta operador se utiliza para acceder a los metadatos asociados a la ejecución de la consulta actual. Este operador se utiliza principalmente para las operaciones de búsqueda de texto, en las que los metadatos pueden proporcionar información sobre la relevancia de los documentos coincidentes.

Parámetros

  • textScore: recupera la puntuación de búsqueda de texto del documento. Esta puntuación indica la relevancia del documento para la consulta de búsqueda de texto.

Ejemplo (MongoDB Shell)

El siguiente ejemplo muestra cómo utilizar el $meta operador para recuperar la puntuación de búsqueda de texto de los documentos que coinciden con una consulta de búsqueda de texto.

Cree documentos de muestra

db.documents.insertMany([ { _id: 1, title: "Coffee Basics", content: "Coffee is a popular beverage made from roasted coffee beans." }, { _id: 2, title: "Coffee Culture", content: "Coffee coffee coffee - the ultimate guide to coffee brewing and coffee preparation." }, { _id: 3, title: "Tea vs Coffee", content: "Many people prefer tea over coffee for its health benefits." } ]);

Crea un índice de texto

db.documents.createIndex({ content: "text" });

Ejemplo de consulta

db.documents.find( { $text: { $search: "coffee" } }, { _id: 0, title: 1, content: 1, score: { $meta: "textScore" } } ).sort({ score: { $meta: "textScore" } });

Salida

[ { title: 'Coffee Culture', content: 'Coffee coffee coffee - the ultimate guide to coffee brewing and coffee preparation.', score: 0.8897688388824463 }, { title: 'Coffee Basics', content: 'Coffee is a popular beverage made from roasted coffee beans.', score: 0.75990891456604 }, { title: 'Tea vs Coffee', content: 'Many people prefer tea over coffee for its health benefits.', score: 0.6079270839691162 } ]

Ejemplos de código

Para ver un ejemplo de código para usar el $meta comando, elija la pestaña del idioma que desee usar:

Node.js
const { MongoClient } = require('mongodb'); async function findWithTextScore() { 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('documents'); const result = await collection.find( { $text: { $search: "coffee" } }, { projection: { _id: 0, title: 1, content: 1, score: { $meta: "textScore" } } } ).sort({ score: { $meta: "textScore" } }).toArray(); console.log(result); client.close(); } findWithTextScore();
Python
from pymongo import MongoClient 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['documents'] for doc in collection.find( {'$text': {'$search': 'coffee'}}, {'_id': 0, 'title': 1, 'content': 1, 'score': {'$meta': 'textScore'}} ).sort([('score', {'$meta': 'textScore'})]): print(doc) client.close()