From f48ead24ecbccafd37951a90e2180ce04c8aeb11 Mon Sep 17 00:00:00 2001 From: Stefano Pigozzi Date: Tue, 8 Nov 2022 10:37:39 +0000 Subject: [PATCH] Interrogazione sull'indice --- README.md | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/README.md b/README.md index 22af9dc..9595fc3 100644 --- a/README.md +++ b/README.md @@ -193,6 +193,8 @@ db.EXAMPLE.find({ }) ``` +#### Query speciali + Circondando di virgolette doppie `"` un termine della ricerca, è possibile richiedere la presenza esatta di uno dato termine o frase all'interno del documento: ```javascript @@ -224,3 +226,36 @@ db.EXAMPLE.find({ }) ``` +#### Query miste + +È possibile effettuare query `$text` assieme a query "normali", effettuando l'intersezione dei risultati: + +```javascript +// Cerca documenti che siano libri e che contengano le parole della stringa "Tutto su MongoDB" +db.EXAMPLE.find({ + $text: { + $search: "Tutto su MongoDB", + }, + type: "book", +}) +``` + +#### Punteggio + +Al fine di ordinare i documenti restituiti dalla query `$text`, a ciascuno di essi viene assegnato un punteggio, che dipende quanto ogni token di esso è rilevante alla richiesta effettuata, e, se specificati, dai pesi dell'indice interrogato. + +È possibile includere il punteggio nel contenuto dei documenti restituiti specificando l'oggetto `{$meta: "textScore"}` come valore di una delle chiavi di proiezione del metodo `.find()`. + +```javascript +// Cerca documenti che contengano le parole della stringa "Tutto su MongoDB" +db.EXAMPLE.find( + { + $text: { + $search: "Tutto su MongoDB", + }, + }, + { + score: {$meta: "textScore"} + } +) +```