Condividi tramite


$meta (proiezione)

SI APPLICA A: MongoDB vCore

L'operatore $meta di proiezione viene usato per includere i metadati nei risultati di una query. È utile per includere metadati come i punteggi di ricerca del testo o altri valori calcolati nei documenti di output.

Sintassi

La sintassi per l'uso dell'operatore di $meta proiezione è la seguente:

db.collection.find( {$text: { $search: <string> } },
    { field: { $meta: <metaDataKeyword> } 
    }
)

Parametri

Descrizione
field Nome del campo nei documenti di output in cui vengono inclusi i metadati.
metaDataKeyword Tipo di metadati da includere parole chiave comuni, ad textScore esempio per i punteggi di ricerca di testo.

Esempio

Ecco l'esempio per illustrare l'utilizzo dell'operatore $meta di proiezione.

Esempio 1: Inclusione dei punteggi di ricerca del testo

È disponibile una raccolta denominata stores e si vuole includere il punteggio di ricerca del testo nei risultati di una query di ricerca di testo.

db.stores.createIndex({ "name": "text"});

db.stores.find(
    { $text: { $search: "Equipment Furniture Finds" } },
    { _id: 1, name: 1, score: { $meta: "textScore" } }
).sort({ score: { $meta: "textScore" } }).limit(2)

Questa query restituisce documenti dalla stores raccolta che corrispondono ai criteri di ricerca del testo e includono un score campo contenente il punteggio di ricerca del testo.

{
    "_id": "7a9aa41e-95bd-43c1-96cd-bcff0c3c33fb",
    "name": "Fabrikam, Inc",
    "score": 2
},
{
    "_id": "ee51cc4c-6770-4bb7-bb61-cd0cc44cb387",
    "name": "Proseware, Inc",
    "score": 2
}

Limitazione

  • Se non viene usato alcun indice, { $meta: "indexKey" } non restituisce nulla.