$meta - Amazon DocumentDB

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

$meta

L'operatore di $meta aggregazione accede ai metadati associati ai documenti in una pipeline di aggregazione. Viene comunemente utilizzato per recuperare i punteggi di ricerca testuali e ordinare i risultati in base alla pertinenza.

Parametri

  • textScore: recupera il punteggio di ricerca testuale che indica la pertinenza del documento rispetto alla query di ricerca.

Esempio (MongoDB Shell)

L'esempio seguente dimostra l'utilizzo dell'$metaoperatore in una pipeline di aggregazione per recuperare e ordinare i punteggi di ricerca testuali.

Crea documenti di esempio

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." } ]);

Esempio di interrogazione

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

Output

[ { _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 } ]

Esempi di codice

Per visualizzare un esempio di codice per l'utilizzo dell'operatore di $meta aggregazione, scegli la scheda relativa alla lingua che desideri utilizzare:

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()