$meta - Amazon DocumentDB

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

$meta

Der $meta Operator wird verwendet, um auf Metadaten zuzugreifen, die mit der aktuellen Abfrageausführung verknüpft sind. Dieser Operator wird hauptsächlich für Textsuchoperationen verwendet, bei denen die Metadaten Informationen über die Relevanz der übereinstimmenden Dokumente liefern können.

Parameter

  • textScore: Ruft das Ergebnis der Textsuche für das Dokument ab. Diese Bewertung gibt die Relevanz des Dokuments für die Textsuchabfrage an.

Beispiel (MongoDB Shell)

Das folgende Beispiel zeigt, wie der $meta Operator verwendet wird, um das Ergebnis der Textsuche für Dokumente abzurufen, die einer Textsuchabfrage entsprechen.

Erstellen Sie Beispieldokumente

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

Textindex erstellen

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

Beispiel für eine Abfrage

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

Ausgabe

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

Codebeispiele

Um ein Codebeispiel für die Verwendung des $meta Befehls anzuzeigen, wählen Sie die Registerkarte für die Sprache, die Sie verwenden möchten:

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