Como Executar queries de Pesquisa Multilingue do Atlas
Nesta página
Este tutorial descreve como criar um índice que usa umanalisador de idioma e executar uma pesquisa multilíngue na coleção sample_mflix.movies
. Ele conduz você pelas seguintes etapas:
Configure um Atlas Search índice de pesquisa com mapeamento dinâmico para a collection
sample_mflix.movies
. Você pode aplicar o analisador de idiomalucene.italian
ou o analisador de idiomalucene.italian
elucene.english
para indexar o campofullplot
. O Atlas Search usa o analisadorlucene.standard
padrão para todos os outros campo que ele indexa dinamicamente na collection.Execute uma query composta do Atlas Search nos campos
fullplot
,released
egenres
na collectionsample_mflix.movies
.
Antes de começar, certifique-se de que seu Atlas cluster atenda aos requisitos descritos nos Pré-requisitos.
Para criar um índice do Atlas Search, você deve ter acesso do Project Data Access Admin
ou superior ao projeto.
Crie o Índice Atlas Search
Nesta seção, você criará um índice de pesquisa do Atlas Search no campo fullplot
na collection sample_mflix.movies
.
No Atlas, VáGo para a Clusters página do seu projeto.
Se ainda não tiver sido exibido, selecione a organização que contém seu projeto no menu Organizations na barra de navegação.
Se ainda não estiver exibido, selecione o projeto desejado no menu Projects na barra de navegação.
Se ainda não estiver exibido, clique em Clusters na barra lateral.
A página Clusters é exibida.
Acesse a página do Atlas Search do seu cluster.
Você pode acessar a página do Atlas Search pela barra lateral, pelo Data Explorer ou pela página de detalhes do cluster.
Na barra lateral, clique em Atlas Search sob o título Services.
No menu suspenso Select data source, selecione seu cluster e clique em Go to Atlas Search.
A página Atlas Search é exibida.
Clique no botão Browse Collections para o seu cluster.
Expanda o banco de dados e selecione a coleção.
Clique na guia Search Indexes da coleção.
A página Atlas Search é exibida.
Clique no nome do seu cluster.
Clique na aba Atlas Search.
A página Atlas Search é exibida.
Insira o Index Name e defina o Database and Collection.
No campo Index Name, digite
multilingual-tutorial
.Se você nomear seu índice
default
, não precisará especificar um parâmetroindex
no estágio do pipeline $search . Se você der um nome personalizado ao seu índice, deverá especificar este nome no parâmetroindex
.Na seção Database and Collection, localize o banco de dados
sample_mflix
e selecione a coleçãomovies
.
Especifique uma definição de índice.
Você pode usar o Atlas Search Visual Editor ou o Atlas Search JSON
Editor na interface de usuário do Atlas para criar o índice. Você pode configurar o índice para analisar o campo fullplot
usando somente o idioma italian ou usando os idiomas italian e inglês.
Clique em Refine Your Index.
Na seção Field Mappings, clique em Add Field para exibir a janela Add Field Mapping.
Clique em Customized Configuration.
Selecione
fullplot
para o Field Name.Nas configurações do tipo de dados, você pode configurar se deseja analisar o campo usando somente o idioma italian ou usando os idiomas italian e inglês.
Clique no menu suspenso Data Type e selecione String.
Modifique o Index Analyzer e Search Analyzer para utilizar o analisador
lucene.italian
.Na lista suspensa Index Analyzer , selecione
lucene.language
e, em seguida,lucene.italian
.Se Search Analyzer não foi atualizado automaticamente, no menu suspenso Search Analyzer , selecione
lucene.language
e, em seguida,lucene.italian
.
Clique no menu suspenso Data Type e selecione String.
Modifique o Index Analyzer e Search Analyzer para utilizar o analisador
lucene.italian
.Na lista suspensa Index Analyzer , selecione
lucene.language
e, em seguida,lucene.italian
.Se Search Analyzer não foi atualizado automaticamente, no menu suspenso Search Analyzer , selecione
lucene.language
e, em seguida,lucene.italian
.
Clique em Add Multi Field para definir outro tipo de dados para o campo
fullplot
.Insira
fullplot_english
no campo Multi Field Name .Modifique o Index Analyzer e Search Analyzer para utilizar o analisador
lucene.english
.Na lista suspensa Index Analyzer , selecione
lucene.language
e, em seguida,lucene.english
.Se Search Analyzer não foi atualizado automaticamente, no menu suspenso Search Analyzer , selecione
lucene.language
e, em seguida,lucene.english
.
Clique em Add.
Na seção Index Configurations , garanta as seguintes configurações e faça alterações, se necessário:
Usar
lucene.standard
para Index Analyzer e Search Analyzerhabilitar Dynamic Mapping
Clique em Save Changes.
Substitua a definição padrão pelo seguinte:
{ "analyzer": "lucene.standard", "searchAnalyzer": "lucene.standard", "mappings": { "dynamic": true, "fields": { "fullplot": [ { "analyzer": "lucene.italian", "searchAnalyzer": "lucene.italian", "type": "string" } ] } } } { "analyzer": "lucene.standard", "searchAnalyzer": "lucene.standard", "mappings": { "dynamic": true, "fields": { "fullplot": { "type": "string", "analyzer": "lucene.italian", "searchAnalyzer": "lucene.italian", "multi": { "fullplot_english": { "type": "string", "analyzer": "lucene.english", "searchAnalyzer": "lucene.english" } } } } } } Clique em Next.
Pesquisar a collection
➤ Use o menu suspenso Selecione a linguagem para definir a linguagem do exemplo nesta seção.
Você pode usar o operador composto para combinar dois ou mais operadores em uma única query. Nesta seção, conecte-se ao cluster do Atlas e execute a query de amostra na collection sample_mflix.movies
usando o operador compound
.
No Atlas, váGo para a Clusters página do seu projeto.
Se ainda não tiver sido exibido, selecione a organização que contém seu projeto no menu Organizations na barra de navegação.
Se ainda não estiver exibido, selecione o projeto desejado no menu Projects na barra de navegação.
Se ainda não estiver exibido, clique em Clusters na barra lateral.
A página Clusters é exibida.
Acesse a página do Atlas Search do seu cluster.
Você pode acessar a página do Atlas Search pela barra lateral, pelo Data Explorer ou pela página de detalhes do cluster.
Na barra lateral, clique em Atlas Search sob o título Services.
No menu suspenso Select data source, selecione seu cluster e clique em Go to Atlas Search.
A página Atlas Search é exibida.
Clique no botão Browse Collections para o seu cluster.
Expanda o banco de dados e selecione a coleção.
Clique na guia Search Indexes da coleção.
A página Atlas Search é exibida.
Clique no nome do seu cluster.
Clique na aba Atlas Search.
A página Atlas Search é exibida.
Execute uma query multilíngue do Atlas Search que pesquisa um termo em italiano.
Essa query usa as seguintes cláusulas do operador compound
para fazer query na collection:
must
cláusula para procurar enredos de filmes em italiano que contenham o termocoppia
com o operador textmustNot
cláusula para excluir filmes lançados entre os anos 2000 a 2009 usando o operador intervalshould
cláusula para especificar preferência pelo gêneroDrama
com o operador de texto
Copie e cole a seguinte consulta no Query Editor e, em seguida, clique no botão Search no Query Editor.
[ { $search: { "index": "multilingual-tutorial", "compound": { "must": [{ "text": { "path": "fullplot", "query": "coppia" } }], "mustNot": [{ "range": { "path": "released", "gt": ISODate("2000-01-01T00:00:00.000Z"), "lt": ISODate("2009-01-01T00:00:00.000Z") } }], "should": [{ "text": { "query": "Drama", "path": "genres" } }] } } } ]
SCORE: 4.606284141540527 _id: "573a1394f29313caabce0561" plot: "In a Japanese slum, various residents play out their lives, dreaming o…" genres: 0: "Drama" runtime: 137 fullplot: "Una coppia di gretti usurai gestisce uno squallido dormitorio, nei pre…" released: 1957-10-01T00:00:00.000+00:00 SCORE: 3.9604406356811523 _id: "573a1395f29313caabce26d2" plot: "Sei persone viaggiano in un vagone-letto da Marsiglia a Parigi. All'ar…" genres: 0: "Mystery" 1: "Thriller" runtime: 95 fullplot: "Sei persone viaggiano in un vagone-letto da Marsiglia a Parigi. All'ar…" released: 1965-11-17T00:00:00.000+00:00
Expanda os resultados da query.
O Search Tester pode não exibir todos os campos nos documentos que ele retorna. Para exibir todos os campos, incluindo o campo que você especifica no caminho da consulta, expanda o documento nos resultados.
No Atlas, váGo para a Clusters página do seu projeto.
Se ainda não tiver sido exibido, selecione a organização que contém seu projeto no menu Organizations na barra de navegação.
Se ainda não estiver exibido, selecione o projeto desejado no menu Projects na barra de navegação.
Se ainda não estiver exibido, clique em Clusters na barra lateral.
A página Clusters é exibida.
Acesse a página do Atlas Search do seu cluster.
Você pode acessar a página do Atlas Search pela barra lateral, pelo Data Explorer ou pela página de detalhes do cluster.
Na barra lateral, clique em Atlas Search sob o título Services.
No menu suspenso Select data source, selecione seu cluster e clique em Go to Atlas Search.
A página Atlas Search é exibida.
Clique no botão Browse Collections para o seu cluster.
Expanda o banco de dados e selecione a coleção.
Clique na guia Search Indexes da coleção.
A página Atlas Search é exibida.
Clique no nome do seu cluster.
Clique na aba Atlas Search.
A página Atlas Search é exibida.
Execute uma query multilíngue do Atlas Search que pesquisa um termo em inglês e espanhol.
Essa query usa as seguintes cláusulas do operador compound
para fazer query na collection:
must
cláusula para pesquisar tramas de filmes em inglês e italiano que contenham o termoBella
com o operador textmustNot
cláusula para excluir filmes lançados entre os anos 1984 a 2016 usando o operador intervalshould
cláusula para especificar preferência pelo gêneroComedy
com o operador de texto
Copie e cole a seguinte consulta no Query Editor e, em seguida, clique no botão Search no Query Editor.
[ { $search: { "index": "multilingual-tutorial", "compound": { "must": [{ "text": { "query": "Bella", "path": { "value": "fullplot", "multi": "fullplot_english" } } }], "mustNot": [{ "range": { "path": "released", "gt": ISODate("1984-01-01T00:00:00.000Z"), "lt": ISODate("2016-01-01T00:00:00.000Z") } }], "should": [{ "text": { "query": "Comedy", "path": "genres" } }] } } } ]
SCORE: 3.909510850906372 _id: "573a1397f29313caabce8bad" plot: "He is a revenge-obssessed stevedore whose sister was brutally raped an…" genres: 0: "Drama" runtime: 137 fullplot: "In Marseilles, a woman commits suicide after she is raped in an alley.…" released: 1983-05-18T00:00:00.000+00:00 SCORE: 3.4253346920013428 _id: "573a1396f29313caabce5735" plot: "Giovanna e' una bella ragazza, ma ha qualche problema con gli uomini: …" genres: 0: "Comedy" runtime: 100 fullplot: "Giovanna e' una bella ragazza, ma ha qualche problema con gli uomini: …" released: 1974-11-15T00:00:00.000+00:00 SCORE: 3.363344430923462 _id: "573a1395f29313caabce13cf" plot: "Gerardo è un attore o almeno cerca di esserlo, ma il pubblico non è de…" genres: 0: "Comedy" runtime: 95 fullplot: "Gerardo è un attore o almeno cerca di esserlo, ma il pubblico non è de…" released: 1960-02-10T00:00:00.000+00:00 SCORE: 1.9502882957458496 _id: "573a1396f29313caabce5299" plot: "Dr Tremayne is an enigmatic Psychiatrist running a Futuristic asylum h…" genres: 0: "Horror" runtime: 90 fullplot: "Dr Tremayne is an enigmatic Psychiatrist running a Futuristic asylum h…" released: 1973-10-31T00:00:00.000+00:00
Expanda os resultados da query.
O Search Tester pode não exibir todos os campos nos documentos que ele retorna. Para exibir todos os campos, incluindo o campo que você especifica no caminho da consulta, expanda o documento nos resultados.
Conecte-se ao seu cluster no mongosh
.
Abra o mongosh
em uma janela do terminal e conecte ao seu cluster. Para obter instruções detalhadas sobre a conexão, consulte Conectar via mongosh
.
Use o banco de dados sample_mflix
.
Execute o seguinte comando no prompt mongosh
:
use sample_mflix
Execute uma query multilíngue do Atlas Search que pesquisa um termo em italiano.
Essa query usa as seguintes cláusulas do operador compound
para fazer query na collection:
must
cláusula para procurar enredos de filmes em italiano que contenham o termocoppia
com o operador textmustNot
cláusula para excluir filmes lançados entre os anos 2000 a 2009 usando o operador intervalshould
cláusula para especificar preferência pelo gêneroDrama
com o operador de texto
A consulta usa o estágio de pipeline $project para:
Exclua todos os campos, exceto
title
,fullplot
,released
egenres
Adicione um campo chamado
score
db.movies.aggregate([ { $search: { "index": "multilingual-tutorial", "compound": { "must": [{ "text": { "path": "fullplot", "query": "coppia" } }], "mustNot": [{ "range": { "path": "released", "gt": ISODate("2000-01-01T00:00:00.000Z"), "lt": ISODate("2009-01-01T00:00:00.000Z") } }], "should": [{ "text": { "query": "Drama", "path": "genres" } }] } } }, { $project: { "_id": 0, "title": 1, "fullplot": 1, "released": 1, "genres": 1, "score": { "$meta": "searchScore" } } } ])
{ genres: [ 'Drama' ], title: 'Donzoko', fullplot: `Una coppia di gretti usurai gestisce uno squallido dormitorio, nei pressi di una discarica. Una folla di larve e relitti umani affolla il locale: un ex attore alcolizzato; una prostituta; un fabbro che sragiona; disoccupati ed altri ancora. In tutti c'è la ricerca della fuga dalla loro miseranda esistenza, attraverso alcool, gioco, sogni. Arriva un giorno al dormitorio un vecchio e saggio pellegrino, che porta in tutti una nota di speranza con la sua filosofia e la sua umanitè. Ma il sogno dura poco : lo sconforto torna ad impadronirsi di tutti, al punto da portare l'ex attore al suicidio e gli altri a ribellarsi ai due gestori. Ispirato ad un dramma di Gorkij, il film parla della parte sconfitta dell'umanitè, dei vinti, dei falliti, dei rifiutati dalla societè "civile".`, released: ISODate("1957-10-01T00:00:00.000Z"), score: 4.606284141540527 }, { genres: [ 'Mystery', 'Thriller' ], title: 'Compartiment tueurs', fullplot: "Sei persone viaggiano in un vagone-letto da Marsiglia a Parigi. All'arrivo, un donna viene trovata morta nella sua cuccetta. La polizia si mette alla ricerca delle altre persone, sospettando possa essere stato uno degli altri cinque passeggeri a commettere l'omicidio, ma questi sono uccisi uno ad uno. Gli ultimi due (una coppia di ragazzi conosciutisi per caso nella carrozza) decidono di cercare di risolvere il caso, per non essere uccisi a loro volta, rischiando comunque di esserlo. Con il loro aiuto il caso viene risolto: un giovane e squattrinato studente, amante di una ricca ed attempata attrice (una delle vittime) ha organizzato gli omicidi con il suo amante, un giovane poliziotto nevrotico, per derubare la donna e fuggire insieme in Africa; per cui bisognava uccidere tutti i componenti del vagone-letto per non destare sospetti. Alla fine, dopo un inseguimento notturno per le vie di Parigi, lo studente viene arrestato ed il complice si suicida per non essere catturato.", released: ISODate("1965-11-17T00:00:00.000Z"), score: 3.9604406356811523 }
Conecte-se ao seu cluster no mongosh
.
Abra o mongosh
em uma janela do terminal e conecte ao seu cluster. Para obter instruções detalhadas sobre a conexão, consulte Conectar via mongosh
.
Use o banco de dados sample_mflix
.
Execute o seguinte comando no prompt mongosh
:
use sample_mflix
Execute uma query multilíngue do Atlas Search que pesquisa um termo em inglês e espanhol.
Essa query usa as seguintes cláusulas do operador compound
para fazer query na collection:
must
cláusula para pesquisar tramas de filmes em inglês e italiano que contenham o termoBella
com o operador textmustNot
cláusula para excluir filmes lançados entre os anos 1984 a 2016 usando o operador intervalshould
cláusula para especificar preferência pelo gêneroComedy
com o operador de texto
A consulta usa o estágio de pipeline $project para:
Exclua todos os campos, exceto
title
,fullplot
,released
egenres
Adicione um campo chamado
score
db.movies.aggregate([ { $search: { "index": "multilingual-tutorial", "compound": { "must": [{ "text": { "query": "Bella", "path": { "value": "fullplot", "multi": "fullplot_english" } } }], "mustNot": [{ "range": { "path": "released", "gt": ISODate("1984-01-01T00:00:00.000Z"), "lt": ISODate("2016-01-01T00:00:00.000Z") } }], "should": [{ "text": { "query": "Comedy", "path": "genres" } }] } } }, { $project: { "_id": 0, "title": 1, "fullplot": 1, "released": 1, "genres": 1, "score": { "$meta": "searchScore" } } } ])
{ genres: [ 'Drama' ], title: 'The Moon in the Gutter', fullplot: "In Marseilles, a woman commits suicide after she is raped in an alley. Nightly, her brother Gerard broods at the scene hoping to catch the rapist. He lives with his lover Bella whom he neglects, an alcoholic brother who lurks about, and his father who's stayed drunk since the daughter's death, ignoring work and his own companion. At a seedy bar, Gerard meets a wealthy, nihilistic hedonist and his beautiful sister. Gerard flips for her and thinks she's his ticket out of the slum. Bella warns him otherwise and also, in jealousy, sets two thugs on him. Then Gerard thinks he's found his sister's rapist. These emotional crises force Gerard to choose what's most important.", released: ISODate("1983-05-18T00:00:00.000Z"), score: 3.909510850906372 }, { genres: [ 'Comedy' ], title: 'Policewoman', fullplot: "Giovanna e' una bella ragazza, ma ha qualche problema con gli uomini: tutti la vogliono solo usare, anche il suo fidanzata Claudio. Trovera' una via d'uscita diventando vigile urbano. Come Giovanna d'Arco, il suo idolo, non guardera' in faccia a nessuno e con l'aiuto del pretore Patane', innamorato di lei, smascherera' una serie di intrallazzi e corruzione denunciando perfino il suo capo, Marcellini. I due paladini della giustizia coroneranno il loro sogno d'amore, trasferiti in una lontana isoletta a sud della Sicilia, ma i corrotti resteranno al loro posto.", released: ISODate("1974-11-15T00:00:00.000Z"), score: 3.4253346920013428 }, { genres: [ 'Comedy' ], title: 'Love and Larceny', fullplot: `Gerardo è un attore o almeno cerca di esserlo, ma il pubblico non è del suo parere. Cosè, per arrotondare gli introiti, aiuta l'amico Lallo in un suo "lavoretto". Questo gli costa perè la prigione, dove incontra Chinotto e Gloria Patri. Uscito inizia, con l'opposizione di Annalisa che lo vuole sposare, una carriera come truffatore, dapprima in societè con Chinotto e quindi con la bella Elena. Tutto sembra filare a gonfie vele, e le truffe divengono sempre piè grosse e di successo. Ma a volte è destino che il ragno resti preso dalla stessa tela che tesse.`, released: ISODate("1960-02-10T00:00:00.000Z"), score: 3.363344430923462 }, { genres: [ 'Horror' ], title: 'Tales That Witness Madness', fullplot: "Dr Tremayne is an enigmatic Psychiatrist running a Futuristic asylum housing four very special cases. Visited by colleague Nicholas, Tremayne explains his amazing and controversial theories as to why each of the four patients went mad... cue four distinct tales each with a different set of characters: 'Mr Tiger' tells of Paul, the sensitive and troubled young son of prosperous but constantly bickering and unlovely parents, and the boy's 'imaginary' friend, a tiger. 'Penny Farthing' tells of Timothy, an antique store owner propelled backwards in time by a penny-farthing bicycle in his shop, all the while being watched over by the constantly changing photograph of Uncle Albert, which endangers the lives of both Timothy and his beautiful wife, Ann. 'Mel' tells of Brian, a man who brings home an old dead tree and prominently displays it in his living room as a work of art. His fiery wife Bella soon becomes jealous of the tree, which the husband has lovingly named Mel, and it seems to be developing a will of its own. 'Luau' tells of Auriol, a flamboyant and ambitious literary agent who will do anything to impress her sinister new client, though he seems more interested in Auriol's beautiful and precocious young daughter Ginny. Ginny sneaks off on holiday while Auriol plans a sumptuous feast for her client.", released: ISODate("1973-10-31T00:00:00.000Z"), score: 1.9502882957458496 }
Conecte-se ao seu cluster no MongoDB Compass.
Abra o MongoDB Compass e conecte-se ao cluster. Para obter instruções detalhadas sobre a conexão, consulte Conectar via Compass.
Execute uma query multilíngue do Atlas Search que pesquisa um termo em italiano.
Essa query usa as seguintes cláusulas do operador compound
para fazer query na collection:
must
cláusula para procurar enredos de filmes em italiano que contenham o termocoppia
com o operador textmustNot
cláusula para excluir filmes lançados entre os anos 2000 a 2009 usando o operador intervalshould
cláusula para especificar preferência pelo gêneroDrama
com o operador de texto
A consulta usa o estágio de pipeline $project para:
Exclua todos os campos, exceto
title
,fullplot
,released
egenres
Adicione um campo chamado
score
Para executar esta consulta no MongoDB Compass:
Clique na aba Aggregations.
Clique em Select... e, em seguida, configure cada um dos seguintes estágios do pipeline, selecionando o estágio no menu suspenso e adicionando a consulta para esse estágio. Clique em Add Stage para adicionar estágios adicionais.
estágio do pipelineQuery$search
{ "index": "multilingual-tutorial", "compound": { "must": [{ "text": { "path": "fullplot", "query": "coppia" } }], "mustNot": [{ "range": { "path": "released", "gt": ISODate("2000-01-01T00:00:00.000Z"), "lt": ISODate("2009-01-01T00:00:00.000Z") } }], "should": [{ "text": { "query": "Drama", "path": "genres" } }] } } $project
{ "_id": 0, "title": 1, "fullplot": 1, "released": 1, "genres": 1, "score": { "$meta": "searchScore" } }
Se você habilitou o Auto Preview, o MongoDB Compass exibe os seguintes documentos ao lado da etapa de pipeline do $project
:
{ genres: [ 'Drama' ], title: 'Donzoko', fullplot: `Una coppia di gretti usurai gestisce uno squallido dormitorio, nei pressi di una discarica. Una folla di larve e relitti umani affolla il locale: un ex attore alcolizzato; una prostituta; un fabbro che sragiona; disoccupati ed altri ancora. In tutti c'è la ricerca della fuga dalla loro miseranda esistenza, attraverso alcool, gioco, sogni. Arriva un giorno al dormitorio un vecchio e saggio pellegrino, che porta in tutti una nota di speranza con la sua filosofia e la sua umanitè. Ma il sogno dura poco : lo sconforto torna ad impadronirsi di tutti, al punto da portare l'ex attore al suicidio e gli altri a ribellarsi ai due gestori. Ispirato ad un dramma di Gorkij, il film parla della parte sconfitta dell'umanitè, dei vinti, dei falliti, dei rifiutati dalla societè "civile".`, released: ISODate("1957-10-01T00:00:00.000Z"), score: 4.606284141540527 }, { genres: [ 'Mystery', 'Thriller' ], title: 'Compartiment tueurs', fullplot: "Sei persone viaggiano in un vagone-letto da Marsiglia a Parigi. All'arrivo, un donna viene trovata morta nella sua cuccetta. La polizia si mette alla ricerca delle altre persone, sospettando possa essere stato uno degli altri cinque passeggeri a commettere l'omicidio, ma questi sono uccisi uno ad uno. Gli ultimi due (una coppia di ragazzi conosciutisi per caso nella carrozza) decidono di cercare di risolvere il caso, per non essere uccisi a loro volta, rischiando comunque di esserlo. Con il loro aiuto il caso viene risolto: un giovane e squattrinato studente, amante di una ricca ed attempata attrice (una delle vittime) ha organizzato gli omicidi con il suo amante, un giovane poliziotto nevrotico, per derubare la donna e fuggire insieme in Africa; per cui bisognava uccidere tutti i componenti del vagone-letto per non destare sospetti. Alla fine, dopo un inseguimento notturno per le vie di Parigi, lo studente viene arrestato ed il complice si suicida per non essere catturato.", released: ISODate("1965-11-17T00:00:00.000Z"), score: 3.9604406356811523 }
Conecte-se ao seu cluster no MongoDB Compass.
Abra o MongoDB Compass e conecte-se ao cluster. Para obter instruções detalhadas sobre a conexão, consulte Conectar via Compass.
Execute uma query multilíngue do Atlas Search que pesquisa um termo em inglês e espanhol.
Essa query usa as seguintes cláusulas do operador compound
para fazer query na collection:
must
cláusula para pesquisar tramas de filmes em inglês e italiano que contenham o termoBella
com o operador textmustNot
cláusula para excluir filmes lançados entre os anos 1984 a 2016 usando o operador intervalshould
cláusula para especificar preferência pelo gêneroComedy
com o operador de texto
A consulta usa o estágio de pipeline $project para:
Exclua todos os campos, exceto
title
,fullplot
,released
egenres
Adicione um campo chamado
score
Para executar esta consulta no MongoDB Compass:
Clique na aba Aggregations.
Clique em Select... e, em seguida, configure cada um dos seguintes estágios do pipeline, selecionando o estágio no menu suspenso e adicionando a consulta para esse estágio. Clique em Add Stage para adicionar estágios adicionais.
estágio do pipelineQuery$search
{ "index": "multilingual-tutorial", "compound": { "must": [{ "text": { "path": {"value": "fullplot", "multi": "fullplot_english"}, "query": "Bella" } }], "mustNot": [{ "range": { "path": "released", "gt": ISODate("1984-01-01T00:00:00.000Z"), "lt": ISODate("2016-01-01T00:00:00.000Z") } }], "should": [{ "text": { "query": "Comedy", "path": "genres" } }] } } $project
{ "_id": 0, "title": 1, "fullplot": 1, "released": 1, "genres": 1, "score": { "$meta": "searchScore" } }
Se você habilitou o Auto Preview, o MongoDB Compass exibe os seguintes documentos ao lado da etapa de pipeline do $project
:
{ genres: [ 'Drama' ], title: 'The Moon in the Gutter', fullplot: "In Marseilles, a woman commits suicide after she is raped in an alley. Nightly, her brother Gerard broods at the scene hoping to catch the rapist. He lives with his lover Bella whom he neglects, an alcoholic brother who lurks about, and his father who's stayed drunk since the daughter's death, ignoring work and his own companion. At a seedy bar, Gerard meets a wealthy, nihilistic hedonist and his beautiful sister. Gerard flips for her and thinks she's his ticket out of the slum. Bella warns him otherwise and also, in jealousy, sets two thugs on him. Then Gerard thinks he's found his sister's rapist. These emotional crises force Gerard to choose what's most important.", released: ISODate("1983-05-18T00:00:00.000Z"), score: 3.909510850906372 }, { genres: [ 'Comedy' ], title: 'Policewoman', fullplot: "Giovanna e' una bella ragazza, ma ha qualche problema con gli uomini: tutti la vogliono solo usare, anche il suo fidanzata Claudio. Trovera' una via d'uscita diventando vigile urbano. Come Giovanna d'Arco, il suo idolo, non guardera' in faccia a nessuno e con l'aiuto del pretore Patane', innamorato di lei, smascherera' una serie di intrallazzi e corruzione denunciando perfino il suo capo, Marcellini. I due paladini della giustizia coroneranno il loro sogno d'amore, trasferiti in una lontana isoletta a sud della Sicilia, ma i corrotti resteranno al loro posto.", released: ISODate("1974-11-15T00:00:00.000Z"), score: 3.4253346920013428 }, { genres: [ 'Comedy' ], title: 'Love and Larceny', fullplot: `Gerardo è un attore o almeno cerca di esserlo, ma il pubblico non è del suo parere. Cosè, per arrotondare gli introiti, aiuta l'amico Lallo in un suo "lavoretto". Questo gli costa perè la prigione, dove incontra Chinotto e Gloria Patri. Uscito inizia, con l'opposizione di Annalisa che lo vuole sposare, una carriera come truffatore, dapprima in societè con Chinotto e quindi con la bella Elena. Tutto sembra filare a gonfie vele, e le truffe divengono sempre piè grosse e di successo. Ma a volte è destino che il ragno resti preso dalla stessa tela che tesse.`, released: ISODate("1960-02-10T00:00:00.000Z"), score: 3.363344430923462 }, { genres: [ 'Horror' ], title: 'Tales That Witness Madness', fullplot: "Dr Tremayne is an enigmatic Psychiatrist running a Futuristic asylum housing four very special cases. Visited by colleague Nicholas, Tremayne explains his amazing and controversial theories as to why each of the four patients went mad... cue four distinct tales each with a different set of characters: 'Mr Tiger' tells of Paul, the sensitive and troubled young son of prosperous but constantly bickering and unlovely parents, and the boy's 'imaginary' friend, a tiger. 'Penny Farthing' tells of Timothy, an antique store owner propelled backwards in time by a penny-farthing bicycle in his shop, all the while being watched over by the constantly changing photograph of Uncle Albert, which endangers the lives of both Timothy and his beautiful wife, Ann. 'Mel' tells of Brian, a man who brings home an old dead tree and prominently displays it in his living room as a work of art. His fiery wife Bella soon becomes jealous of the tree, which the husband has lovingly named Mel, and it seems to be developing a will of its own. 'Luau' tells of Auriol, a flamboyant and ambitious literary agent who will do anything to impress her sinister new client, though he seems more interested in Auriol's beautiful and precocious young daughter Ginny. Ginny sneaks off on holiday while Auriol plans a sumptuous feast for her client.", released: ISODate("1973-10-31T00:00:00.000Z"), score: 1.9502882957458496 }
Configure e inicialize o projeto .NET/C# para a query.
Crie um novo diretório chamado
one-language-example
e inicialize seu projeto com o comandodotnet new
.mkdir one-language-example cd one-language-example dotnet new console Adicione o driver .NET/C# ao seu projeto como uma dependência.
dotnet add package MongoDB.Driver
Crie a query no arquivo Program.cs
.
Substitua o conteúdo do arquivo
Program.cs
pelo seguinte código.O exemplo de código executa as seguintes tarefas:
Importa pacotes e dependências do
mongodb
.Estabelece uma ligação ao seu cluster Atlas.
Usa as seguintes cláusulas do operador
compound
para consultar a coleção:must
cláusula para procurar enredos de filmes em italiano que contenham o termocoppia
com o operador textmustNot
cláusula para excluir filmes lançados entre os anos 2000 a 2009 usando o operador intervalshould
cláusula para especificar preferência pelo gêneroDrama
com o operador de texto
A consulta usa o estágio de pipeline $project para:
Exclua todos os campos, exceto
title
,fullplot
,released
egenres
Adicione um campo chamado
score
Itera sobre o cursor para imprimir os documentos que correspondem à consulta.
1 using MongoDB.Bson; 2 using MongoDB.Bson.Serialization.Attributes; 3 using MongoDB.Bson.Serialization.Conventions; 4 using MongoDB.Driver; 5 using MongoDB.Driver.Search; 6 7 public class OneLanguageExample 8 { 9 private const string MongoConnectionString = "<connection-string>"; 10 11 public static void Main(string[] args) 12 { 13 // allow automapping of the camelCase database fields to our MovieDocument 14 var camelCaseConvention = new ConventionPack { new CamelCaseElementNameConvention() }; 15 ConventionRegistry.Register("CamelCase", camelCaseConvention, type => true); 16 17 // connect to your Atlas cluster 18 var mongoClient = new MongoClient(MongoConnectionString); 19 var mflixDatabase = mongoClient.GetDatabase("sample_mflix"); 20 var moviesCollection = mflixDatabase.GetCollection<MovieDocument>("movies"); 21 22 // declare data for compound query 23 var startDate = new DateTime(2000, 01, 01, 0, 0, 0, DateTimeKind.Utc); 24 var endDate = new DateTime(2009, 01, 01, 0, 0, 0, DateTimeKind.Utc); 25 26 // define and run pipeline 27 var results = moviesCollection.Aggregate() 28 .Search(Builders<MovieDocument>.Search.Compound() 29 .Must(Builders<MovieDocument>.Search.Text(movie => movie.Fullplot, "coppia")) 30 .MustNot(Builders<MovieDocument>.Search.Range(movie => movie.Released, SearchRangeBuilder.Gt(startDate).Lt(endDate))) 31 .Should(Builders<MovieDocument>.Search.Text(movie => movie.Genres, "Drama")), 32 indexName: "multilingual-tutorial") 33 .Project<MovieDocument>(Builders<MovieDocument>.Projection 34 .Include(movie => movie.Fullplot) 35 .Include(movie => movie.Genres) 36 .Include(movie => movie.Released) 37 .Include(movie => movie.Title) 38 .Exclude(movie => movie.Id) 39 .MetaSearchScore(movie => movie.Score)) 40 .ToList(); 41 42 // print results 43 foreach (var movie in results) 44 { 45 Console.WriteLine(movie.ToJson()); 46 } 47 } 48 } 49 50 [ ]51 public class MovieDocument 52 { 53 public string Fullplot { get; set; } 54 [ ]55 public ObjectId Id { get; set; } 56 public string [] Genres { get; set; } 57 public DateTime Released { get; set; } 58 public string Title { get; set; } 59 public double Score { get; set; } 60 } Antes de executar o exemplo, substitua
<connection-string>
por sua cadeia de conexão do Atlas. Certifique-se de que sua cadeia de conexão inclui as credenciais do usuário do banco de dados. Para saber mais, consulte Conectar via Drivers.
Compile e execute o arquivo Program.cs
.
dotnet run one-language-example.csproj
{ "fullplot" : "Una coppia di gretti usurai gestisce uno squallido dormitorio, nei pressi di una discarica. Una folla di larve e relitti umani affolla il locale: un ex attore alcolizzato; una prostituta; un fabbro che sragiona; disoccupati ed altri ancora. In tutti c'è la ricerca della fuga dalla loro miseranda esistenza, attraverso alcool, gioco, sogni. Arriva un giorno al dormitorio un vecchio e saggio pellegrino, che porta in tutti una nota di speranza con la sua filosofia e la sua umanitè. Ma il sogno dura poco : lo sconforto torna ad impadronirsi di tutti, al punto da portare l'ex attore al suicidio e gli altri a ribellarsi ai due gestori. Ispirato ad un dramma di Gorkij, il film parla della parte sconfitta dell'umanitè, dei vinti, dei falliti, dei rifiutati dalla societè \"civile\".", "genres" : ["Drama"], "released" : ISODate("1957-10-01T00:00:00Z"), "title" : "Donzoko", "score" : 4.6062841415405273 } { "fullplot" : "Sei persone viaggiano in un vagone-letto da Marsiglia a Parigi. All'arrivo, un donna viene trovata morta nella sua cuccetta. La polizia si mette alla ricerca delle altre persone, sospettando possa essere stato uno degli altri cinque passeggeri a commettere l'omicidio, ma questi sono uccisi uno ad uno. Gli ultimi due (una coppia di ragazzi conosciutisi per caso nella carrozza) decidono di cercare di risolvere il caso, per non essere uccisi a loro volta, rischiando comunque di esserlo. Con il loro aiuto il caso viene risolto: un giovane e squattrinato studente, amante di una ricca ed attempata attrice (una delle vittime) ha organizzato gli omicidi con il suo amante, un giovane poliziotto nevrotico, per derubare la donna e fuggire insieme in Africa; per cui bisognava uccidere tutti i componenti del vagone-letto per non destare sospetti. Alla fine, dopo un inseguimento notturno per le vie di Parigi, lo studente viene arrestato ed il complice si suicida per non essere catturato.", "genres" : ["Mystery", "Thriller"], "released" : ISODate("1965-11-17T00:00:00Z"), "title" : "Compartiment tueurs", "score" : 3.9604406356811523 }
Configure e inicialize o projeto .NET/C# para a query.
Crie um novo diretório chamado
two-languages-example
e inicialize seu projeto com o comandodotnet new
.mkdir two-languages-example cd two-languages-example dotnet new console Adicione o driver .NET/C# ao seu projeto como uma dependência.
dotnet add package MongoDB.Driver
Crie a query no arquivo Program.cs
.
Substitua o conteúdo do arquivo
Program.cs
pelo seguinte código.O exemplo de código executa as seguintes tarefas:
Importa pacotes e dependências do
mongodb
.Estabelece uma ligação ao seu cluster Atlas.
Usa as seguintes cláusulas do operador
compound
para consultar a coleção:must
cláusula para pesquisar tramas de filmes em inglês e italiano que contenham o termoBella
com o operador textmustNot
cláusula para excluir filmes lançados entre os anos 1984 a 2016 usando o operador intervalshould
cláusula para especificar preferência pelo gêneroComedy
com o operador de texto
A consulta usa o estágio de pipeline $project para:
Exclua todos os campos, exceto
title
,fullplot
,released
egenres
Adicione um campo chamado
score
Itera sobre o cursor para imprimir os documentos que correspondem à consulta.
1 using MongoDB.Bson; 2 using MongoDB.Bson.Serialization.Attributes; 3 using MongoDB.Bson.Serialization.Conventions; 4 using MongoDB.Driver; 5 using MongoDB.Driver.Search; 6 7 public class TwoLanguagesExample 8 { 9 private const string MongoConnectionString = "<connection-string>"; 10 11 public static void Main(string[] args) 12 { 13 // allow automapping of the camelCase database fields to our MovieDocument 14 var camelCaseConvention = new ConventionPack { new CamelCaseElementNameConvention() }; 15 ConventionRegistry.Register("CamelCase", camelCaseConvention, type => true); 16 17 // connect to your Atlas cluster 18 var mongoClient = new MongoClient(MongoConnectionString); 19 var mflixDatabase = mongoClient.GetDatabase("sample_mflix"); 20 var moviesCollection = mflixDatabase.GetCollection<MovieDocument>("movies"); 21 22 // declare data for compound query 23 var startDate = new DateTime(1984, 01, 01, 0, 0, 0, DateTimeKind.Utc); 24 var endDate = new DateTime(2016, 01, 01, 0, 0, 0, DateTimeKind.Utc); 25 26 // define and run pipeline 27 var results = moviesCollection.Aggregate() 28 .Search(Builders<MovieDocument>.Search.Compound() 29 .Must(Builders<MovieDocument>.Search.Text(Builders<MovieDocument>.SearchPath.Analyzer(movie => movie.Fullplot, "fullplot_english"), "Bella")) 30 .MustNot(Builders<MovieDocument>.Search.Range(movie => movie.Released, SearchRangeBuilder.Gt(startDate).Lt(endDate))) 31 .Should(Builders<MovieDocument>.Search.Text(movie => movie.Genres, "Comedy")), 32 indexName: "multilingual-tutorial") 33 .Project<MovieDocument>(Builders<MovieDocument>.Projection 34 .Include(movie => movie.Fullplot) 35 .Include(movie => movie.Genres) 36 .Include(movie => movie.Released) 37 .Include(movie => movie.Title) 38 .Exclude(movie => movie.Id) 39 .MetaSearchScore(movie => movie.Score)) 40 .ToList(); 41 42 // print results 43 foreach (var movie in results) 44 { 45 Console.WriteLine(movie.ToJson()); 46 } 47 } 48 } 49 50 [ ]51 public class MovieDocument 52 { 53 public string Fullplot { get; set; } 54 [ ]55 public ObjectId Id { get; set; } 56 public string [] Genres { get; set; } 57 public DateTime Released { get; set; } 58 public string Title { get; set; } 59 public double Score { get; set; } 60 } Antes de executar o exemplo, substitua
<connection-string>
por sua cadeia de conexão do Atlas. Certifique-se de que sua cadeia de conexão inclui as credenciais do usuário do banco de dados. Para saber mais, consulte Conectar via Drivers.
Compile e execute o arquivo Program.cs
.
dotnet run two-languages-example.csproj
{ "fullplot" : "In Marseilles, a woman commits suicide after she is raped in an alley. Nightly, her brother Gerard broods at the scene hoping to catch the rapist. He lives with his lover Bella whom he neglects, an alcoholic brother who lurks about, and his father who's stayed drunk since the daughter's death, ignoring work and his own companion. At a seedy bar, Gerard meets a wealthy, nihilistic hedonist and his beautiful sister. Gerard flips for her and thinks she's his ticket out of the slum. Bella warns him otherwise and also, in jealousy, sets two thugs on him. Then Gerard thinks he's found his sister's rapist. These emotional crises force Gerard to choose what's most important.", "genres" : ["Drama"], "released" : ISODate("1983-05-18T00:00:00Z"), "title" : "The Moon in the Gutter", "score" : 3.9095108509063721 } { "fullplot" : "Giovanna e' una bella ragazza, ma ha qualche problema con gli uomini: tutti la vogliono solo usare, anche il suo fidanzata Claudio. Trovera' una via d'uscita diventando vigile urbano. Come Giovanna d'Arco, il suo idolo, non guardera' in faccia a nessuno e con l'aiuto del pretore Patane', innamorato di lei, smascherera' una serie di intrallazzi e corruzione denunciando perfino il suo capo, Marcellini. I due paladini della giustizia coroneranno il loro sogno d'amore, trasferiti in una lontana isoletta a sud della Sicilia, ma i corrotti resteranno al loro posto.", "genres" : ["Comedy"], "released" : ISODate("1974-11-15T00:00:00Z"), "title" : "Policewoman", "score" : 3.4253346920013428 } { "fullplot" : "Gerardo è un attore o almeno cerca di esserlo, ma il pubblico non è del suo parere. Cosè, per arrotondare gli introiti, aiuta l'amico Lallo in un suo \"lavoretto\". Questo gli costa perè la prigione, dove incontra Chinotto e Gloria Patri. Uscito inizia, con l'opposizione di Annalisa che lo vuole sposare, una carriera come truffatore, dapprima in societè con Chinotto e quindi con la bella Elena. Tutto sembra filare a gonfie vele, e le truffe divengono sempre piè grosse e di successo. Ma a volte è destino che il ragno resti preso dalla stessa tela che tesse.", "genres" : ["Comedy"], "released" : ISODate("1960-02-10T00:00:00Z"), "title" : "Love and Larceny", "score" : 3.3633444309234619 } { "fullplot" : "Dr Tremayne is an enigmatic Psychiatrist running a Futuristic asylum housing four very special cases. Visited by colleague Nicholas, Tremayne explains his amazing and controversial theories as to why each of the four patients went mad... cue four distinct tales each with a different set of characters: 'Mr Tiger' tells of Paul, the sensitive and troubled young son of prosperous but constantly bickering and unlovely parents, and the boy's 'imaginary' friend, a tiger. 'Penny Farthing' tells of Timothy, an antique store owner propelled backwards in time by a penny-farthing bicycle in his shop, all the while being watched over by the constantly changing photograph of Uncle Albert, which endangers the lives of both Timothy and his beautiful wife, Ann. 'Mel' tells of Brian, a man who brings home an old dead tree and prominently displays it in his living room as a work of art. His fiery wife Bella soon becomes jealous of the tree, which the husband has lovingly named Mel, and it seems to be developing a will of its own. 'Luau' tells of Auriol, a flamboyant and ambitious literary agent who will do anything to impress her sinister new client, though he seems more interested in Auriol's beautiful and precocious young daughter Ginny. Ginny sneaks off on holiday while Auriol plans a sumptuous feast for her client.", "genres" : ["Horror"], "released" : ISODate("1973-10-31T00:00:00Z"), "title" : "Tales That Witness Madness", "score" : 1.9502882957458496 }
Execute uma query multilíngue do Atlas Search que pesquisa um termo em italiano.
Crie um arquivo denominado
one-language-query.go
.Copie e cole o seguinte código no arquivo
one-language-query.go
.O exemplo de código executa as seguintes tarefas:
Importa pacotes e dependências do
mongodb
.Estabelece uma ligação ao seu cluster Atlas.
Usa as seguintes cláusulas do operador
compound
para consultar a coleção:must
cláusula para procurar enredos de filmes em italiano que contenham o termocoppia
com o operador textmustNot
cláusula para excluir filmes lançados entre os anos 2000 a 2009 usando o operador intervalshould
cláusula para especificar preferência pelo gêneroDrama
com o operador de texto
A consulta usa o estágio de pipeline $project para:
Exclua todos os campos, exceto
title
,fullplot
,released
egenres
Adicione um campo chamado
score
Itera sobre o cursor para imprimir os documentos que correspondem à consulta.
1 package main 2 3 import ( 4 "context" 5 "fmt" 6 "time" 7 8 "go.mongodb.org/mongo-driver/bson" 9 "go.mongodb.org/mongo-driver/mongo" 10 "go.mongodb.org/mongo-driver/mongo/options" 11 ) 12 13 func main() { 14 // connect to your Atlas cluster 15 client, err := mongo.Connect(context.TODO(), options.Client().ApplyURI("<connection-string>")) 16 if err != nil { 17 panic(err) 18 } 19 defer client.Disconnect(context.TODO()) 20 21 // set namespace 22 collection := client.Database("sample_mflix").Collection("movies") 23 24 // define pipeline stages 25 searchStage := bson.D{{"$search", bson.M{ 26 "index": "multilingual-tutorial", 27 "compound": bson.M{ 28 "must": bson.D{ 29 {"text", bson.M{ 30 "path": "fullplot", "query": "coppia", 31 }}}, 32 "mustNot": bson.M{ 33 "range": bson.M{ 34 "path": "released", 35 "gt": time.Date(2000, time.January, 1, 0, 0, 0, 0, time.UTC), 36 "lt": time.Date(2009, time.January, 1, 0, 0, 0, 0, time.UTC), 37 }}, 38 "should": bson.D{ 39 {"text", bson.M{ 40 "path": "genres", "query": "Drama", 41 }}}, 42 }}}} 43 projectStage := bson.D{{"$project", bson.D{{"_id", 0}, {"title", 1}, {"fullplot", 1}, {"released", 1}, {"genres", 1}, {"score", bson.D{{"$meta", "searchScore"}}}}}} 44 45 // run pipeline 46 cursor, err := collection.Aggregate(context.TODO(), mongo.Pipeline{searchStage, projectStage}) 47 if err != nil { 48 panic(err) 49 } 50 51 // print results 52 var results []bson.D 53 if err = cursor.All(context.TODO(), &results); err != nil { 54 panic(err) 55 } 56 for _, result := range results { 57 fmt.Println(result) 58 } 59 } Antes de executar o exemplo, substitua
<connection-string>
por sua cadeia de conexão do Atlas. Certifique-se de que sua cadeia de conexão inclui as credenciais do usuário do banco de dados. Para saber mais, consulte Conectar via Drivers.Execute o seguinte comando para consultar sua collection:
go run one-language-query.go [ {genres [Drama]} {title Donzoko} {fullplot Una coppia di gretti usurai gestisce uno squallido dormitorio, nei pressi di una discarica. Una folla di larve e relitti umani affolla il locale: un ex attore alcolizzato; una prostituta; un fabbro che sragiona; disoccupati ed altri ancora. In tutti c'è la ricerca della fuga dalla loro miseranda esistenza, attraverso alcool, gioco, sogni. Arriva un giorno al dormitorio un vecchio e saggio pellegrino, che porta in tutti una nota di speranza con la sua filosofia e la sua umanitè. Ma il sogno dura poco : lo sconforto torna ad impadronirsi di tutti, al punto da portare l'ex attore al suicidio e gli altri a ribellarsi ai due gestori. Ispirato ad un dramma di Gorkij, il film parla della parte sconfitta dell'umanitè, dei vinti, dei falliti, dei rifiutati dalla societè "civile".} {released -386640000000} {score 4.606284141540527} ] [ {genres [Mystery Thriller]} {title Compartiment tueurs} {fullplot Sei persone viaggiano in un vagone-letto da Marsiglia a Parigi. All'arrivo, un donna viene trovata morta nella sua cuccetta. La polizia si mette alla ricerca delle altre persone, sospettando possa essere stato uno degli altri cinque passeggeri a commettere l'omicidio, ma questi sono uccisi uno ad uno. Gli ultimi due (una coppia di ragazzi conosciutisi per caso nella carrozza) decidono di cercare di risolvere il caso, per non essere uccisi a loro volta, rischiando comunque di esserlo. Con il loro aiuto il caso viene risolto: un giovane e squattrinato studente, amante di una ricca ed attempata attrice (una delle vittime) ha organizzato gli omicidi con il suo amante, un giovane poliziotto nevrotico, per derubare la donna e fuggire insieme in Africa; per cui bisognava uccidere tutti i componenti del vagone-letto per non destare sospetti. Alla fine, dopo un inseguimento notturno per le vie di Parigi, lo studente viene arrestato ed il complice si suicida per non essere catturato.} {released -130118400000} {score 3.9604406356811523} ]
Execute uma query multilíngue do Atlas Search que pesquisa um termo em inglês e espanhol.
Crie um arquivo denominado
two-languages-query.go
.Copie e cole o seguinte código no arquivo
two-languages-query.go
.O exemplo de código executa as seguintes tarefas:
Importa pacotes e dependências do
mongodb
.Estabelece uma ligação ao seu cluster Atlas.
Usa as seguintes cláusulas do operador
compound
para consultar a coleção:must
cláusula para pesquisar tramas de filmes em inglês e italiano que contenham o termoBella
com o operador textmustNot
cláusula para excluir filmes lançados entre os anos 1984 a 2016 usando o operador intervalshould
cláusula para especificar preferência pelo gêneroComedy
com o operador de texto
A consulta usa o estágio de pipeline $project para:
Exclua todos os campos, exceto
title
,fullplot
,released
egenres
Adicione um campo chamado
score
Itera sobre o cursor para imprimir os documentos que correspondem à consulta.
1 package main 2 3 import ( 4 "context" 5 "fmt" 6 "time" 7 8 "go.mongodb.org/mongo-driver/bson" 9 "go.mongodb.org/mongo-driver/mongo" 10 "go.mongodb.org/mongo-driver/mongo/options" 11 ) 12 13 func main() { 14 // connect to your Atlas cluster 15 client, err := mongo.Connect(context.TODO(), options.Client().ApplyURI("<connection-string>")) 16 if err != nil { 17 panic(err) 18 } 19 defer client.Disconnect(context.TODO()) 20 21 // set namespace 22 collection := client.Database("sample_mflix").Collection("movies") 23 24 // define pipeline stages 25 searchStage := bson.D{{"$search", bson.M{ 26 "index": "multilingual-tutorial", 27 "compound": bson.M{ 28 "must": bson.D{ 29 {"text", bson.M{ 30 "path": bson.M{"value": "fullplot", "multi": "fullplot_english"}, "query": "Bella", 31 }}}, 32 "mustNot": bson.M{ 33 "range": bson.M{ 34 "path": "released", 35 "gt": time.Date(1984, time.January, 1, 0, 0, 0, 0, time.UTC), 36 "lt": time.Date(2016, time.January, 1, 0, 0, 0, 0, time.UTC), 37 }}, 38 "should": bson.D{ 39 {"text", bson.M{ 40 "path": "genres", "query": "Comedy", 41 }}}, 42 }}}} 43 projectStage := bson.D{{"$project", bson.D{{"_id", 0}, {"title", 1}, {"fullplot", 1}, {"released", 1}, {"genres", 1}, {"score", bson.D{{"$meta", "searchScore"}}}}}} 44 45 // run pipeline 46 cursor, err := collection.Aggregate(context.TODO(), mongo.Pipeline{searchStage, projectStage}) 47 if err != nil { 48 panic(err) 49 } 50 51 // print results 52 var results []bson.D 53 if err = cursor.All(context.TODO(), &results); err != nil { 54 panic(err) 55 } 56 for _, result := range results { 57 fmt.Println(result) 58 } 59 } Antes de executar o exemplo, substitua
<connection-string>
por sua cadeia de conexão do Atlas. Certifique-se de que sua cadeia de conexão inclui as credenciais do usuário do banco de dados. Para saber mais, consulte Conectar via Drivers.Execute o seguinte comando para consultar sua collection:
go run two-languages-query.go [ {genres [Drama]} {title The Moon in the Gutter} {fullplot In Marseilles, a woman commits suicide after she is raped in an alley. Nightly, her brother Gerard broods at the scene hoping to catch the rapist. He lives with his lover Bella whom he neglects, an alcoholic brother who lurks about, and his father who's stayed drunk since the daughter's death, ignoring work and his own companion. At a seedy bar, Gerard meets a wealthy, nihilistic hedonist and his beautiful sister. Gerard flips for her and thinks she's his ticket out of the slum. Bella warns him otherwise and also, in jealousy, sets two thugs on him. Then Gerard thinks he's found his sister's rapist. These emotional crises force Gerard to choose what's most important.} {released 422064000000} {score 3.909510850906372} ] [ {genres [Comedy]} {title Policewoman} {fullplot Giovanna e' una bella ragazza, ma ha qualche problema con gli uomini: tutti la vogliono solo usare, anche il suo fidanzata Claudio. Trovera' una via d'uscita diventando vigile urbano. Come Giovanna d'Arco, il suo idolo, non guardera' in faccia a nessuno e con l'aiuto del pretore Patane', innamorato di lei, smascherera' una serie di intrallazzi e corruzione denunciando perfino il suo capo, Marcellini. I due paladini della giustizia coroneranno il loro sogno d'amore, trasferiti in una lontana isoletta a sud della Sicilia, ma i corrotti resteranno al loro posto.} {released 153705600000} {score 3.4253346920013428} ] [ {genres [Comedy]} {title Love and Larceny} {fullplot Gerardo è un attore o almeno cerca di esserlo, ma il pubblico non è del suo parere. Cosè, per arrotondare gli introiti, aiuta l'amico Lallo in un suo "lavoretto". Questo gli costa perè la prigione, dove incontra Chinotto e Gloria Patri. Uscito inizia, con l'opposizione di Annalisa che lo vuole sposare, una carriera come truffatore, dapprima in societè con Chinotto e quindi con la bella Elena. Tutto sembra filare a gonfie vele, e le truffe divengono sempre piè grosse e di successo. Ma a volte è destino che il ragno resti preso dalla stessa tela che tesse.} {released -312163200000} {score 3.363344430923462} ] [ {genres [Horror]} {title Tales That Witness Madness} {fullplot Dr Tremayne is an enigmatic Psychiatrist running a Futuristic asylum housing four very special cases. Visited by colleague Nicholas, Tremayne explains his amazing and controversial theories as to why each of the four patients went mad... cue four distinct tales each with a different set of characters: 'Mr Tiger' tells of Paul, the sensitive and troubled young son of prosperous but constantly bickering and unlovely parents, and the boy's 'imaginary' friend, a tiger. 'Penny Farthing' tells of Timothy, an antique store owner propelled backwards in time by a penny-farthing bicycle in his shop, all the while being watched over by the constantly changing photograph of Uncle Albert, which endangers the lives of both Timothy and his beautiful wife, Ann. 'Mel' tells of Brian, a man who brings home an old dead tree and prominently displays it in his living room as a work of art. His fiery wife Bella soon becomes jealous of the tree, which the husband has lovingly named Mel, and it seems to be developing a will of its own. 'Luau' tells of Auriol, a flamboyant and ambitious literary agent who will do anything to impress her sinister new client, though he seems more interested in Auriol's beautiful and precocious young daughter Ginny. Ginny sneaks off on holiday while Auriol plans a sumptuous feast for her client.} {released 120873600000} {score 1.9502882957458496} ]
Execute uma query multilíngue do Atlas Search que pesquisa um termo em italiano.
Crie um arquivo denominado
OneLanguageQuery.java
.Copie e cole o seguinte código no arquivo
OneLanguageQuery.java
.O exemplo de código executa as seguintes tarefas:
Importa pacotes e dependências do
mongodb
.Estabelece uma ligação ao seu cluster Atlas.
Usa as seguintes cláusulas do operador
compound
para consultar a coleção:must
cláusula para procurar enredos de filmes em italiano que contenham o termocoppia
com o operador textmustNot
cláusula para excluir filmes lançados entre os anos 2000 a 2009 usando o operador intervalshould
cláusula para especificar preferência pelo gêneroDrama
com o operador de texto
A consulta usa o estágio de pipeline $project para:
Exclua todos os campos, exceto
title
,fullplot
,released
egenres
Adicione um campo chamado
score
Itera sobre o cursor para imprimir os documentos que correspondem à consulta.
1 import java.util.Arrays; 2 3 import static com.mongodb.client.model.Aggregates.project; 4 import static com.mongodb.client.model.Projections.*; 5 import com.mongodb.client.MongoClient; 6 import com.mongodb.client.MongoClients; 7 import com.mongodb.client.MongoCollection; 8 import com.mongodb.client.MongoDatabase; 9 import org.bson.Document; 10 11 public class OneLanguageQuery { 12 public static void main( String[] args ) { 13 // define clauses 14 List<Document> mustClauses = 15 List.of( new Document( 16 "text", new Document("path", "fullplot").append("query", "coppia"))); 17 List<Document> mustNotClauses = 18 List.of( new Document( 19 "range", new Document("path", "released") 20 .append("gt", Date.from(Instant.parse("2000-01-01T00:00:00.000Z"))) 21 .append("lt", Date.from(Instant.parse("2009-01-01T00:00:00.000Z"))))); 22 List<Document> shouldClauses = 23 List.of( 24 new Document("text", 25 new Document("query", "Drama") 26 .append("path", "genres"))); 27 // define query 28 Document agg = 29 new Document( "$search", 30 new Document( "index", "multilingual-tutorial") 31 .append("compound", 32 new Document().append("must", mustClauses) 33 .append("mustNot", mustNotClauses) 34 .append("should", shouldClauses))); 35 36 // specify connection 37 String uri = "<connection-string>"; 38 39 // establish connection and set namespace 40 try (MongoClient mongoClient = MongoClients.create(uri)) { 41 MongoDatabase database = mongoClient.getDatabase("sample_mflix"); 42 MongoCollection<Document> collection = database.getCollection("movies"); 43 44 // run query and print results 45 collection.aggregate(Arrays.asList(agg, 46 project(fields( 47 excludeId(), 48 include("title", "fullplot", "released", "genres"), 49 computed("score", new Document("$meta", "searchScore")))))) 50 .forEach(doc -> System.out.println(doc.toJson())); 51 } 52 } 53 } Observação
Para executar o código de amostra em seu ambiente Maven, adicione o seguinte código acima das declarações de importação em seu arquivo.
package com.mongodb.drivers; Antes de executar o exemplo, substitua
<connection-string>
por sua cadeia de conexão do Atlas. Certifique-se de que sua cadeia de conexão inclui as credenciais do usuário do banco de dados. Para saber mais, consulte Conectar via Drivers.Compile e execute o arquivo
OneLanguageQuery.java
.
javac OneLanguageQuery.java java OneLanguageQuery
{ "genres": ["Drama"], "title": "Donzoko", "fullplot": "Una coppia di gretti usurai gestisce uno squallido dormitorio, nei pressi di una discarica. Una folla di larve e relitti umani affolla il locale: un ex attore alcolizzato; una prostituta; un fabbro che sragiona; disoccupati ed altri ancora. In tutti c'è la ricerca della fuga dalla loro miseranda esistenza, attraverso alcool, gioco, sogni. Arriva un giorno al dormitorio un vecchio e saggio pellegrino, che porta in tutti una nota di speranza con la sua filosofia e la sua umanitè. Ma il sogno dura poco : lo sconforto torna ad impadronirsi di tutti, al punto da portare l'ex attore al suicidio e gli altri a ribellarsi ai due gestori. Ispirato ad un dramma di Gorkij, il film parla della parte sconfitta dell'umanitè, dei vinti, dei falliti, dei rifiutati dalla societè \"civile\".", "released": {"$date": {"$numberLong": "-386640000000"}}, "score": 4.606284141540527 } { "genres": ["Mystery", "Thriller"], "title": "Compartiment tueurs", "fullplot": "Sei persone viaggiano in un vagone-letto da Marsiglia a Parigi. All'arrivo, un donna viene trovata morta nella sua cuccetta. La polizia si mette alla ricerca delle altre persone, sospettando possa essere stato uno degli altri cinque passeggeri a commettere l'omicidio, ma questi sono uccisi uno ad uno. Gli ultimi due (una coppia di ragazzi conosciutisi per caso nella carrozza) decidono di cercare di risolvere il caso, per non essere uccisi a loro volta, rischiando comunque di esserlo. Con il loro aiuto il caso viene risolto: un giovane e squattrinato studente, amante di una ricca ed attempata attrice (una delle vittime) ha organizzato gli omicidi con il suo amante, un giovane poliziotto nevrotico, per derubare la donna e fuggire insieme in Africa; per cui bisognava uccidere tutti i componenti del vagone-letto per non destare sospetti. Alla fine, dopo un inseguimento notturno per le vie di Parigi, lo studente viene arrestato ed il complice si suicida per non essere catturato.", "released": {"$date": {"$numberLong": "-130118400000"}}, "score": 3.9604406356811523 }
Execute uma query multilíngue do Atlas Search que pesquisa um termo em inglês e espanhol.
Crie um arquivo denominado
TwoLanguagesQuery.java
.Copie e cole o seguinte código no arquivo
TwoLanguagesQuery.java
.O exemplo de código executa as seguintes tarefas:
Importa pacotes e dependências do
mongodb
.Estabelece uma ligação ao seu cluster Atlas.
Usa as seguintes cláusulas do operador
compound
para consultar a coleção:must
cláusula para pesquisar tramas de filmes em inglês e italiano que contenham o termoBella
com o operador textmustNot
cláusula para excluir filmes lançados entre os anos 1984 a 2016 usando o operador intervalshould
cláusula para especificar preferência pelo gêneroComedy
com o operador de texto
A consulta usa o estágio de pipeline $project para:
Exclua todos os campos, exceto
title
,fullplot
,released
egenres
Adicione um campo chamado
score
Itera sobre o cursor para imprimir os documentos que correspondem à consulta.
1 import java.util.Arrays; 2 3 import static com.mongodb.client.model.Aggregates.project; 4 import static com.mongodb.client.model.Projections.*; 5 import com.mongodb.client.MongoClient; 6 import com.mongodb.client.MongoClients; 7 import com.mongodb.client.MongoCollection; 8 import com.mongodb.client.MongoDatabase; 9 import org.bson.Document; 10 11 public class TwoLanguagesQuery { 12 public static void main( String[] args ) { 13 // define clauses 14 List<Document> mustClauses = 15 List.of( new Document( 16 "text", new Document("path", new Document("value", "fullplot").append("multi", "fullplot_english")).append("query", "Bella"))); 17 List<Document> mustNotClauses = 18 List.of( new Document( 19 "range", new Document("path", "released") 20 .append("gt", Date.from(Instant.parse("1984-01-01T00:00:00.000Z"))) 21 .append("lt", Date.from(Instant.parse("2016-01-01T00:00:00.000Z"))))); 22 List<Document> shouldClauses = 23 List.of( 24 new Document("text", 25 new Document("query", "Comedy") 26 .append("path", "genres"))); 27 // define query 28 // define query 29 Document agg = 30 new Document( "$search", 31 new Document( "index", "multilingual-tutorial") 32 .append("compound", 33 new Document().append("must", mustClauses) 34 .append("mustNot", mustNotClauses) 35 .append("should", shouldClauses)))); 36 37 // specify connection 38 String uri = "<connection-string>"; 39 40 // establish connection and set namespace 41 try (MongoClient mongoClient = MongoClients.create(uri)) { 42 MongoDatabase database = mongoClient.getDatabase("sample_mflix"); 43 MongoCollection<Document> collection = database.getCollection("movies"); 44 45 // run query and print results 46 collection.aggregate(Arrays.asList(agg, 47 project(fields( 48 excludeId(), 49 include("title", "fullplot", "released", "genres"), 50 computed("score", new Document("$meta", "searchScore")))))) 51 .forEach(doc -> System.out.println(doc.toJson())); 52 } 53 } 54 } Observação
Para executar o código de amostra em seu ambiente Maven, adicione o seguinte código acima das declarações de importação em seu arquivo.
package com.mongodb.drivers; Antes de executar o exemplo, substitua
<connection-string>
por sua cadeia de conexão do Atlas. Certifique-se de que sua cadeia de conexão inclui as credenciais do usuário do banco de dados. Para saber mais, consulte Conectar via Drivers.Compile e execute o arquivo
TwoLanguagesQuery.java
.
javac TwoLanguagesQuery.java java TwoLanguagesQuery
{ "genres": ["Drama"], "title": "Donzoko", "fullplot": "Una coppia di gretti usurai gestisce uno squallido dormitorio, nei pressi di una discarica. Una folla di larve e relitti umani affolla il locale: un ex attore alcolizzato; una prostituta; un fabbro che sragiona; disoccupati ed altri ancora. In tutti c'è la ricerca della fuga dalla loro miseranda esistenza, attraverso alcool, gioco, sogni. Arriva un giorno al dormitorio un vecchio e saggio pellegrino, che porta in tutti una nota di speranza con la sua filosofia e la sua umanitè. Ma il sogno dura poco : lo sconforto torna ad impadronirsi di tutti, al punto da portare l'ex attore al suicidio e gli altri a ribellarsi ai due gestori. Ispirato ad un dramma di Gorkij, il film parla della parte sconfitta dell'umanitè, dei vinti, dei falliti, dei rifiutati dalla societè \"civile\".", "released": {"$date": {"$numberLong": "-386640000000"}}, "score": 4.606284141540527 } { "genres": ["Drama"], "title": "The Moon in the Gutter", "fullplot": "In Marseilles, a woman commits suicide after she is raped in an alley. Nightly, her brother Gerard broods at the scene hoping to catch the rapist. He lives with his lover Bella whom he neglects, an alcoholic brother who lurks about, and his father who's stayed drunk since the daughter's death, ignoring work and his own companion. At a seedy bar, Gerard meets a wealthy, nihilistic hedonist and his beautiful sister. Gerard flips for her and thinks she's his ticket out of the slum. Bella warns him otherwise and also, in jealousy, sets two thugs on him. Then Gerard thinks he's found his sister's rapist. These emotional crises force Gerard to choose what's most important.", "released": {"$date": "1983-05-18T00:00:00Z"}, "score": 3.909510850906372 } { "genres": ["Comedy"], "title": "Policewoman", "fullplot": "Giovanna e' una bella ragazza, ma ha qualche problema con gli uomini: tutti la vogliono solo usare, anche il suo fidanzata Claudio. Trovera' una via d'uscita diventando vigile urbano. Come Giovanna d'Arco, il suo idolo, non guardera' in faccia a nessuno e con l'aiuto del pretore Patane', innamorato di lei, smascherera' una serie di intrallazzi e corruzione denunciando perfino il suo capo, Marcellini. I due paladini della giustizia coroneranno il loro sogno d'amore, trasferiti in una lontana isoletta a sud della Sicilia, ma i corrotti resteranno al loro posto.", "released": {"$date": "1974-11-15T00:00:00Z"}, "score": 3.4253346920013428} {"genres": ["Comedy"], "title": "Love and Larceny", "fullplot": "Gerardo è un attore o almeno cerca di esserlo, ma il pubblico non è del suo parere. Cosè, per arrotondare gli introiti, aiuta l'amico Lallo in un suo \"lavoretto\". Questo gli costa perè la prigione, dove incontra Chinotto e Gloria Patri. Uscito inizia, con l'opposizione di Annalisa che lo vuole sposare, una carriera come truffatore, dapprima in societè con Chinotto e quindi con la bella Elena. Tutto sembra filare a gonfie vele, e le truffe divengono sempre piè grosse e di successo. Ma a volte è destino che il ragno resti preso dalla stessa tela che tesse.", "released": {"$date": {"$numberLong": "-312163200000"}}, "score": 3.363344430923462 } { "genres": ["Horror"], "title": "Tales That Witness Madness", "fullplot": "Dr Tremayne is an enigmatic Psychiatrist running a Futuristic asylum housing four very special cases. Visited by colleague Nicholas, Tremayne explains his amazing and controversial theories as to why each of the four patients went mad... cue four distinct tales each with a different set of characters: 'Mr Tiger' tells of Paul, the sensitive and troubled young son of prosperous but constantly bickering and unlovely parents, and the boy's 'imaginary' friend, a tiger. 'Penny Farthing' tells of Timothy, an antique store owner propelled backwards in time by a penny-farthing bicycle in his shop, all the while being watched over by the constantly changing photograph of Uncle Albert, which endangers the lives of both Timothy and his beautiful wife, Ann. 'Mel' tells of Brian, a man who brings home an old dead tree and prominently displays it in his living room as a work of art. His fiery wife Bella soon becomes jealous of the tree, which the husband has lovingly named Mel, and it seems to be developing a will of its own. 'Luau' tells of Auriol, a flamboyant and ambitious literary agent who will do anything to impress her sinister new client, though he seems more interested in Auriol's beautiful and precocious young daughter Ginny. Ginny sneaks off on holiday while Auriol plans a sumptuous feast for her client.", "released": {"$date": "1973-10-31T00:00:00Z"}, "score": 1.9502882957458496 }
Execute uma query multilíngue do Atlas Search que pesquisa um termo em italiano.
Crie um arquivo denominado
OneLanguageQuery.kt
.Copie e cole o seguinte código no arquivo
OneLanguageQuery.kt
.O exemplo de código executa as seguintes tarefas:
Importa pacotes e dependências do
mongodb
.Estabelece uma ligação ao seu cluster Atlas.
Usa as seguintes cláusulas do operador
compound
para consultar a coleção:must
cláusula para procurar enredos de filmes em italiano que contenham o termocoppia
com o operador textmustNot
cláusula para excluir filmes lançados entre os anos 2000 a 2009 usando o operador intervalshould
cláusula para especificar preferência pelo gêneroDrama
com o operador de texto
A consulta usa o estágio de pipeline $project para:
Exclua todos os campos, exceto
title
,fullplot
,released
egenres
Adicione um campo chamado
score
Imprime os documentos que correspondem à query da instância
AggregateFlow
.
1 import com.mongodb.client.model.Aggregates.project 2 import com.mongodb.client.model.Projections.* 3 import com.mongodb.kotlin.client.coroutine.MongoClient 4 import kotlinx.coroutines.runBlocking 5 import org.bson.Document 6 import java.time.Instant 7 import java.util.* 8 9 fun main() { 10 // establish connection and set namespace 11 val uri = "<connection-string>" 12 val mongoClient = MongoClient.create(uri) 13 14 val database = mongoClient.getDatabase("sample_mflix") 15 val collection = database.getCollection<Document>("movies") 16 17 runBlocking { 18 // define clauses 19 val mustClauses = listOf( 20 Document( 21 "text", Document("path", "fullplot") 22 .append("query", "coppia") 23 ) 24 ) 25 26 val mustNotClauses = listOf( 27 Document( 28 "range", 29 Document("path", "released") 30 .append("gt", Date.from(Instant.parse("2000-01-01T00:00:00.000Z"))) 31 .append("lt", Date.from(Instant.parse("2009-01-01T00:00:00.000Z"))) 32 ) 33 ) 34 35 val shouldClauses = listOf( 36 Document( 37 "text", 38 Document("query", "Drama") 39 .append("path", "genres") 40 ) 41 ) 42 43 // define query 44 val agg = Document( 45 "\$search", 46 Document("index", "multilingual-tutorial") 47 .append( 48 "compound", 49 Document().append("must", mustClauses) 50 .append("mustNot", mustNotClauses) 51 .append("should", shouldClauses) 52 ) 53 ) 54 55 // run query and print results 56 val resultsFlow = collection.aggregate<Document>( 57 listOf( 58 agg, 59 project(fields( 60 excludeId(), 61 include("title", "fullplot", "released", "genres"), 62 computed("score", Document("\$meta", "searchScore")) 63 )) 64 ) 65 ) 66 67 resultsFlow.collect { println(it) } 68 } 69 70 mongoClient.close() 71 } Antes de executar o exemplo, substitua
<connection-string>
por sua cadeia de conexão do Atlas. Certifique-se de que sua cadeia de conexão inclui as credenciais do usuário do banco de dados. Para saber mais, consulte Conectar via Drivers.Execute o arquivo
OneLanguageQuery.kt
.Ao executar o programa
OneLanguageQuery.kt
no seu IDE, ele imprime o seguinte documento:Document{{genres=[Mystery, Thriller], title=Compartiment tueurs, fullplot=Sei persone viaggiano in un vagone-letto da Marsiglia a Parigi. All'arrivo, un donna viene trovata morta nella sua cuccetta. La polizia si mette alla ricerca delle altre persone, sospettando possa essere stato uno degli altri cinque passeggeri a commettere l'omicidio, ma questi sono uccisi uno ad uno. Gli ultimi due (una coppia di ragazzi conosciutisi per caso nella carrozza) decidono di cercare di risolvere il caso, per non essere uccisi a loro volta, rischiando comunque di esserlo. Con il loro aiuto il caso viene risolto: un giovane e squattrinato studente, amante di una ricca ed attempata attrice (una delle vittime) ha organizzato gli omicidi con il suo amante, un giovane poliziotto nevrotico, per derubare la donna e fuggire insieme in Africa; per cui bisognava uccidere tutti i componenti del vagone-letto per non destare sospetti. Alla fine, dopo un inseguimento notturno per le vie di Parigi, lo studente viene arrestato ed il complice si suicida per non essere catturato., released=Tue Nov 16 19:00:00 EST 1965, score=4.068507194519043}}
Execute uma query multilíngue do Atlas Search que pesquisa um termo em inglês e espanhol.
Crie um arquivo denominado
TwoLanguagesQuery.kt
.Copie e cole o seguinte código no arquivo
TwoLanguagesQuery.kt
.O exemplo de código executa as seguintes tarefas:
Importa pacotes e dependências do
mongodb
.Estabelece uma ligação ao seu cluster Atlas.
Usa as seguintes cláusulas do operador
compound
para consultar a coleção:must
cláusula para pesquisar tramas de filmes em inglês e italiano que contenham o termoBella
com o operador textmustNot
cláusula para excluir filmes lançados entre os anos 1984 a 2016 usando o operador intervalshould
cláusula para especificar preferência pelo gêneroComedy
com o operador de texto
A consulta usa o estágio de pipeline $project para:
Exclua todos os campos, exceto
title
,fullplot
,released
egenres
Adicione um campo chamado
score
Imprime os documentos que correspondem à query da instância
AggregateFlow
.
1 import com.mongodb.client.model.Aggregates.project 2 import com.mongodb.client.model.Projections.* 3 import com.mongodb.kotlin.client.coroutine.MongoClient 4 import kotlinx.coroutines.runBlocking 5 import org.bson.Document 6 import java.time.Instant 7 import java.util.* 8 9 fun main() { 10 // establish connection and set namespace 11 val uri = "<connection-string>" 12 val mongoClient = MongoClient.create(uri) 13 14 val database = mongoClient.getDatabase("sample_mflix") 15 val collection = database.getCollection<Document>("movies") 16 17 runBlocking { 18 // define clauses 19 val mustClauses = listOf( 20 Document( 21 "text", 22 Document("path", Document("value", "fullplot") 23 .append("multi", "fullplot_english")) 24 .append("query", "Bella") 25 ) 26 ) 27 28 val mustNotClauses = listOf( 29 Document( 30 "range", Document("path", "released") 31 .append("gt", Date.from(Instant.parse("1984-01-01T00:00:00.000Z"))) 32 .append("lt", Date.from(Instant.parse("2016-01-01T00:00:00.000Z"))) 33 ) 34 ) 35 36 val shouldClauses = listOf( 37 Document( 38 "text", 39 Document("query", "Comedy") 40 .append("path", "genres") 41 ) 42 ) 43 44 // define query 45 val agg = Document( 46 "\$search", Document( "index", "multilingual-tutorial") 47 .append("compound", 48 Document().append("must", mustClauses) 49 .append("mustNot", mustNotClauses) 50 .append("should", shouldClauses) 51 ) 52 ) 53 54 // run query and print results 55 val resultsFlow = collection.aggregate<Document>( 56 listOf( 57 agg, 58 project(fields( 59 excludeId(), 60 include("title", "fullplot", "released", "genres"), 61 computed("score", Document("\$meta", "searchScore")) 62 )) 63 ) 64 ) 65 resultsFlow.collect { println(it) } 66 } 67 mongoClient.close() 68 } Antes de executar o exemplo, substitua
<connection-string>
por sua cadeia de conexão do Atlas. Certifique-se de que sua cadeia de conexão inclui as credenciais do usuário do banco de dados. Para saber mais, consulte Conectar via Drivers.Execute o arquivo
TwoLanguagesQuery.kt
.Ao executar o programa
TwoLanguagesQuery.kt
no seu IDE, ele imprime os seguintes documentos:Document{{genres=[Drama], title=The Moon in the Gutter, fullplot=In Marseilles, a woman commits suicide after she is raped in an alley. Nightly, her brother Gerard broods at the scene hoping to catch the rapist. He lives with his lover Bella whom he neglects, an alcoholic brother who lurks about, and his father who's stayed drunk since the daughter's death, ignoring work and his own companion. At a seedy bar, Gerard meets a wealthy, nihilistic hedonist and his beautiful sister. Gerard flips for her and thinks she's his ticket out of the slum. Bella warns him otherwise and also, in jealousy, sets two thugs on him. Then Gerard thinks he's found his sister's rapist. These emotional crises force Gerard to choose what's most important., released=Tue May 17 20:00:00 EDT 1983, score=3.9086267948150635}} Document{{genres=[Comedy], title=Policewoman, fullplot=Giovanna e' una bella ragazza, ma ha qualche problema con gli uomini: tutti la vogliono solo usare, anche il suo fidanzata Claudio. Trovera' una via d'uscita diventando vigile urbano. Come Giovanna d'Arco, il suo idolo, non guardera' in faccia a nessuno e con l'aiuto del pretore Patane', innamorato di lei, smascherera' una serie di intrallazzi e corruzione denunciando perfino il suo capo, Marcellini. I due paladini della giustizia coroneranno il loro sogno d'amore, trasferiti in una lontana isoletta a sud della Sicilia, ma i corrotti resteranno al loro posto., released=Thu Nov 14 19:00:00 EST 1974, score=3.410970687866211}} Document{{genres=[Comedy], title=Love and Larceny, fullplot=Gerardo è un attore o almeno cerca di esserlo, ma il pubblico non è del suo parere. Cosè, per arrotondare gli introiti, aiuta l'amico Lallo in un suo "lavoretto". Questo gli costa perè la prigione, dove incontra Chinotto e Gloria Patri. Uscito inizia, con l'opposizione di Annalisa che lo vuole sposare, una carriera come truffatore, dapprima in societè con Chinotto e quindi con la bella Elena. Tutto sembra filare a gonfie vele, e le truffe divengono sempre piè grosse e di successo. Ma a volte è destino che il ragno resti preso dalla stessa tela che tesse., released=Tue Feb 09 19:00:00 EST 1960, score=3.349022388458252}} Document{{genres=[Horror], title=Tales That Witness Madness, fullplot=Dr Tremayne is an enigmatic Psychiatrist running a Futuristic asylum housing four very special cases. Visited by colleague Nicholas, Tremayne explains his amazing and controversial theories as to why each of the four patients went mad... cue four distinct tales each with a different set of characters: 'Mr Tiger' tells of Paul, the sensitive and troubled young son of prosperous but constantly bickering and unlovely parents, and the boy's 'imaginary' friend, a tiger. 'Penny Farthing' tells of Timothy, an antique store owner propelled backwards in time by a penny-farthing bicycle in his shop, all the while being watched over by the constantly changing photograph of Uncle Albert, which endangers the lives of both Timothy and his beautiful wife, Ann. 'Mel' tells of Brian, a man who brings home an old dead tree and prominently displays it in his living room as a work of art. His fiery wife Bella soon becomes jealous of the tree, which the husband has lovingly named Mel, and it seems to be developing a will of its own. 'Luau' tells of Auriol, a flamboyant and ambitious literary agent who will do anything to impress her sinister new client, though he seems more interested in Auriol's beautiful and precocious young daughter Ginny. Ginny sneaks off on holiday while Auriol plans a sumptuous feast for her client., released=Tue Oct 30 19:00:00 EST 1973, score=1.9505233764648438}}
Execute uma query multilíngue do Atlas Search que pesquisa um termo em italiano.
Crie um arquivo denominado
one-language-query.js
.Copie e cole o seguinte código no arquivo
one-language-query.js
.O exemplo de código executa as seguintes tarefas:
Importa
mongodb
, o driver do Node.js da MongoDB.Cria uma instância da classe
MongoClient
para estabelecer uma conexão com seu cluster do Atlas.Usa as seguintes cláusulas do operador
compound
para consultar a coleção:must
cláusula para procurar enredos de filmes em italiano que contenham o termocoppia
com o operador textmustNot
cláusula para excluir filmes lançados entre os anos 2000 a 2009 usando o operador intervalshould
cláusula para especificar preferência pelo gêneroDrama
com o operador de texto
A consulta usa o estágio de pipeline $project para:
Exclua todos os campos, exceto
title
,fullplot
,released
egenres
Adicione um campo chamado
score
Itera sobre o cursor para imprimir os documentos que correspondem à consulta.
1 const { MongoClient } = require("mongodb"); 2 3 // connect to your Atlas cluster 4 const uri = 5 "<connection-string>"; 6 7 const client = new MongoClient(uri); 8 9 async function run() { 10 try { 11 await client.connect(); 12 13 // set namespace 14 const database = client.db("sample_mflix"); 15 const coll = database.collection("movies"); 16 17 // define pipeline 18 const agg = [ 19 { $search: { 20 index: "multilingual-tutorial", 21 compound: { 22 must: [{ text: { path: "fullplot", query: "coppia"} }], 23 mustNot: [{ range: { path: "released", gt: new Date("2000-01-01T00:00:00.000Z"), lt: new Date("2009-01-01T00:00:00.000Z") } }], 24 should: [{ text: { query: "Drama", path: "genres" }}]}}}, 25 { $project: {_id: 0, title: 1, fullplot: 1, released: 1, genres: 1, score: { $meta: "searchScore" }}} 26 ]; 27 // run pipeline 28 const result = await coll.aggregate(agg); 29 30 // print results 31 await result.forEach((doc) => console.log(doc)); 32 } finally { 33 await client.close(); 34 } 35 } 36 run().catch(console.dir); Antes de executar o exemplo, substitua
<connection-string>
por sua cadeia de conexão do Atlas. Certifique-se de que sua cadeia de conexão inclui as credenciais do usuário do banco de dados. Para saber mais, consulte Conectar via Drivers.Execute o seguinte comando para consultar sua collection:
node one-language-query.js { genres: [ 'Drama' ], title: 'Donzoko', fullplot: `Una coppia di gretti usurai gestisce uno squallido dormitorio, nei pressi di una discarica. Una folla di larve e relitti umani affolla il locale: un ex attore alcolizzato; una prostituta; un fabbro che sragiona; disoccupati ed altri ancora. In tutti c\'\xe8 la ricerca della fuga dalla loro miseranda esistenza, attraverso alcool, gioco, sogni. Arriva un giorno al dormitorio un vecchio e saggio pellegrino, che porta in tutti una nota di speranza con la sua filosofia e la sua umanit\xe8. Ma il sogno dura poco : lo sconforto torna ad impadronirsi di tutti, al punto da portare l\'ex attore al suicidio e gli altri a ribellarsi ai due gestori. Ispirato ad un dramma di Gorkij, il film parla della parte sconfitta dell\'umanit\xe8, dei vinti, dei falliti, dei rifiutati dalla societ\xe8 "civile".`, released: 1957-10-01T00:00:00.000Z, score: 4.606284141540527 } { genres: [ 'Mystery', 'Thriller' ], title: 'Compartiment tueurs', fullplot: "Sei persone viaggiano in un vagone-letto da Marsiglia a Parigi. All'arrivo, un donna viene trovata morta nella sua cuccetta. La polizia si mette alla ricerca delle altre persone, sospettando possa essere stato uno degli altri cinque passeggeri a commettere l'omicidio, ma questi sono uccisi uno ad uno. Gli ultimi due (una coppia di ragazzi conosciutisi per caso nella carrozza) decidono di cercare di risolvere il caso, per non essere uccisi a loro volta, rischiando comunque di esserlo. Con il loro aiuto il caso viene risolto: un giovane e squattrinato studente, amante di una ricca ed attempata attrice (una delle vittime) ha organizzato gli omicidi con il suo amante, un giovane poliziotto nevrotico, per derubare la donna e fuggire insieme in Africa; per cui bisognava uccidere tutti i componenti del vagone-letto per non destare sospetti. Alla fine, dopo un inseguimento notturno per le vie di Parigi, lo studente viene arrestato ed il complice si suicida per non essere catturato.", released: 1965-11-17T00:00:00.000Z, score: 3.9604406356811523 }
Execute uma query multilíngue do Atlas Search que pesquisa um termo em inglês e espanhol.
Crie um arquivo denominado
two-languages-query.js
.Copie e cole o seguinte código no arquivo
two-languages-query.js
.O exemplo de código executa as seguintes tarefas:
Importa
mongodb
, o driver do Node.js da MongoDB.Cria uma instância da classe
MongoClient
para estabelecer uma conexão com seu cluster do Atlas.Usa as seguintes cláusulas do operador
compound
para consultar a coleção:must
cláusula para pesquisar tramas de filmes em inglês e italiano que contenham o termoBella
com o operador textmustNot
cláusula para excluir filmes lançados entre os anos 1984 a 2016 usando o operador intervalshould
cláusula para especificar preferência pelo gêneroComedy
com o operador de texto
A consulta usa o estágio de pipeline $project para:
Exclua todos os campos, exceto
title
,fullplot
,released
egenres
Adicione um campo chamado
score
Itera sobre o cursor para imprimir os documentos que correspondem à consulta.
1 const { MongoClient } = require("mongodb"); 2 3 // connect to your Atlas cluster 4 const uri = 5 "<connection-string>"; 6 7 const client = new MongoClient(uri); 8 9 async function run() { 10 try { 11 await client.connect(); 12 13 // set namespace 14 const database = client.db("sample_mflix"); 15 const coll = database.collection("movies"); 16 17 // define pipeline 18 const agg = [ 19 { $search: { 20 index: "multilingual-tutorial", 21 compound: { 22 must: [{ text: { path: { value: "fullplot", multi: "fullplot_english" }, query: "Bella"} }], 23 mustNot: [{ range: { path: "released", gt: new Date("1984-01-01T00:00:00.000Z"), lt: new Date("2016-01-01T00:00:00.000Z") } }], 24 should: [{ text: { query: "Comedy", path: "genres" }}]}}}, 25 { $project: {_id: 0, title: 1, fullplot: 1, released: 1, genres: 1, score: { $meta: "searchScore" }}} 26 ]; 27 // run pipeline 28 const result = await coll.aggregate(agg); 29 30 // print results 31 await result.forEach((doc) => console.log(doc)); 32 } finally { 33 await client.close(); 34 } 35 } 36 run().catch(console.dir); Antes de executar o exemplo, substitua
<connection-string>
por sua cadeia de conexão do Atlas. Certifique-se de que sua cadeia de conexão inclui as credenciais do usuário do banco de dados. Para saber mais, consulte Conectar via Drivers.Execute o seguinte comando para consultar sua collection:
node two-languages-query.js { genres: [ 'Drama' ], title: 'The Moon in the Gutter', fullplot: "In Marseilles, a woman commits suicide after she is raped in an alley. Nightly, her brother Gerard broods at the scene hoping to catch the rapist. He lives with his lover Bella whom he neglects, an alcoholic brother who lurks about, and his father who's stayed drunk since the daughter's death, ignoring work and his own companion. At a seedy bar, Gerard meets a wealthy, nihilistic hedonist and his beautiful sister. Gerard flips for her and thinks she's his ticket out of the slum. Bella warns him otherwise and also, in jealousy, sets two thugs on him. Then Gerard thinks he's found his sister's rapist. These emotional crises force Gerard to choose what's most important.", released: 1983-05-18T00:00:00.000Z, score: 3.909510850906372 } { genres: [ 'Comedy' ], title: 'Policewoman', fullplot: "Giovanna e' una bella ragazza, ma ha qualche problema con gli uomini: tutti la vogliono solo usare, anche il suo fidanzata Claudio. Trovera' una via d'uscita diventando vigile urbano. Come Giovanna d'Arco, il suo idolo, non guardera' in faccia a nessuno e con l'aiuto del pretore Patane', innamorato di lei, smascherera' una serie di intrallazzi e corruzione denunciando perfino il suo capo, Marcellini. I due paladini della giustizia coroneranno il loro sogno d'amore, trasferiti in una lontana isoletta a sud della Sicilia, ma i corrotti resteranno al loro posto.", released: 1974-11-15T00:00:00.000Z, score: 3.4253346920013428 } { genres: [ 'Comedy' ], title: 'Love and Larceny', fullplot: `Gerardo è un attore o almeno cerca di esserlo, ma il pubblico non è del suo parere. Cosè, per arrotondare gli introiti, aiuta l'amico Lallo in un suo "lavoretto". Questo gli costa perè la prigione, dove incontra Chinotto e Gloria Patri. Uscito inizia, con l'opposizione di Annalisa che lo vuole sposare, una carriera come truffatore, dapprima in societè con Chinotto e quindi con la bella Elena. Tutto sembra filare a gonfie vele, e le truffe divengono sempre piè grosse e di successo. Ma a volte è destino che il ragno resti preso dalla stessa tela che tesse.`, released: 1960-02-10T00:00:00.000Z, score: 3.363344430923462 } { genres: [ 'Horror' ], title: 'Tales That Witness Madness', fullplot: "Dr Tremayne is an enigmatic Psychiatrist running a Futuristic asylum housing four very special cases. Visited by colleague Nicholas, Tremayne explains his amazing and controversial theories as to why each of the four patients went mad... cue four distinct tales each with a different set of characters: 'Mr Tiger' tells of Paul, the sensitive and troubled young son of prosperous but constantly bickering and unlovely parents, and the boy's 'imaginary' friend, a tiger. 'Penny Farthing' tells of Timothy, an antique store owner propelled backwards in time by a penny-farthing bicycle in his shop, all the while being watched over by the constantly changing photograph of Uncle Albert, which endangers the lives of both Timothy and his beautiful wife, Ann. 'Mel' tells of Brian, a man who brings home an old dead tree and prominently displays it in his living room as a work of art. His fiery wife Bella soon becomes jealous of the tree, which the husband has lovingly named Mel, and it seems to be developing a will of its own. 'Luau' tells of Auriol, a flamboyant and ambitious literary agent who will do anything to impress her sinister new client, though he seems more interested in Auriol's beautiful and precocious young daughter Ginny. Ginny sneaks off on holiday while Auriol plans a sumptuous feast for her client.", released: 1973-10-31T00:00:00.000Z, score: 1.9502882957458496 }
Execute uma query multilíngue do Atlas Search que pesquisa um termo em italiano.
Crie um arquivo denominado
one-language-query.py
.Copie e cole o seguinte código no arquivo
one-language.py
.O seguinte exemplo de código:
Importa
pymongo
, o driver Python do MongoDB e o módulodns
, que é necessário para conectarpymongo
aAtlas
usando uma string de conexão da lista de sementes de DNS.Cria uma instância da classe
MongoClient
para estabelecer uma conexão com seu cluster do Atlas.Usa as seguintes cláusulas do operador
compound
para consultar a coleção:must
cláusula para procurar enredos de filmes em italiano que contenham o termocoppia
com o operador textmustNot
cláusula para excluir filmes lançados entre os anos 2000 a 2009 usando o operador intervalshould
cláusula para especificar preferência pelo gêneroDrama
com o operador de texto
A consulta usa o estágio de pipeline $project para:
Exclua todos os campos, exceto
title
,fullplot
,released
egenres
Adicione um campo chamado
score
Itera sobre o cursor para imprimir os documentos que correspondem à consulta.
1 import pymongo 2 import datetime 3 4 # connect to your Atlas cluster 5 client = pymongo.MongoClient('<connection-string>') 6 7 # define pipeline 8 pipeline = [ 9 {"$search": { 10 "index": "multilingual-tutorial", 11 "compound": { 12 "must": [{"text": {"path": "fullplot", "query": "coppia"}}], 13 "mustNot": [{"range": {"path": "released", "gt": datetime.datetime(2000,1,1,0,0,0), "lt": datetime.datetime(2009,1,1,0,0,0)}}], 14 "should": [{"text": {"query": "Drama", "path": "genres"}}]}}}, 15 {"$project": {"_id": 0, "title": 1, "fullplot": 1, "released": 1, "genres": 1, "score": {"$meta": "searchScore"}}} 16 ] 17 # run pipeline 18 result = client["sample_mflix"]["movies"].aggregate(pipeline) 19 20 # print results 21 for i in result: 22 print(i) Antes de executar o exemplo, substitua
<connection-string>
por sua cadeia de conexão do Atlas. Certifique-se de que sua cadeia de conexão inclui as credenciais do usuário do banco de dados. Para saber mais, consulte Conectar via Drivers.Execute o seguinte comando para consultar sua collection:
python one-language.py { 'released': datetime.datetime(1957, 10, 1, 0, 0), 'genres': ['Drama'], 'score': 4.606284141540527, 'fullplot': 'Una coppia di gretti usurai gestisce uno squallido dormitorio, nei pressi di una discarica. Una folla di larve e relitti umani affolla il locale: un ex attore alcolizzato; una prostituta; un fabbro che sragiona; disoccupati ed altri ancora. In tutti c\'\xe8 la ricerca della fuga dalla loro miseranda esistenza, attraverso alcool, gioco, sogni. Arriva un giorno al dormitorio un vecchio e saggio pellegrino, che porta in tutti una nota di speranza con la sua filosofia e la sua umanit\xe8. Ma il sogno dura poco : lo sconforto torna ad impadronirsi di tutti, al punto da portare l\'ex attore al suicidio e gli altri a ribellarsi ai due gestori. Ispirato ad un dramma di Gorkij, il film parla della parte sconfitta dell\'umanit\xe8, dei vinti, dei falliti, dei rifiutati dalla societ\xe8 "civile".', 'title': 'Donzoko' } { 'released': datetime.datetime(1965, 11, 17, 0, 0), 'genres':['Mystery', 'Thriller'], 'score': 3.9604406356811523, 'fullplot': "Sei persone viaggiano in un vagone-letto da Marsiglia a Parigi. All'arrivo, un donna viene trovata morta nella sua cuccetta. La polizia si mette alla ricerca delle altre persone, sospettando possa essere stato uno degli altri cinque passeggeri a commettere l'omicidio, ma questi sono uccisi uno ad uno. Gli ultimi due (una coppia di ragazzi conosciutisi per caso nella carrozza) decidono di cercare di risolvere il caso, per non essere uccisi a loro volta, rischiando comunque di esserlo. Con il loro aiuto il caso viene risolto: un giovane e squattrinato studente, amante di una ricca ed attempata attrice (una delle vittime) ha organizzato gli omicidi con il suo amante, un giovane poliziotto nevrotico, per derubare la donna e fuggire insieme in Africa; per cui bisognava uccidere tutti i componenti del vagone-letto per non destare sospetti. Alla fine, dopo un inseguimento notturno per le vie di Parigi, lo studente viene arrestato ed il complice si suicida per non essere catturato.", 'title': 'Compartiment tueurs' }
Execute uma query multilíngue do Atlas Search que pesquisa um termo em inglês e espanhol.
Crie um arquivo denominado
two-languages-query.py
.Copie e cole o seguinte código no arquivo
two-languages.py
.O seguinte exemplo de código:
Importa
pymongo
, o driver Python do MongoDB e o módulodns
, que é necessário para conectarpymongo
aAtlas
usando uma string de conexão da lista de sementes de DNS.Cria uma instância da classe
MongoClient
para estabelecer uma conexão com seu cluster do Atlas.Usa as seguintes cláusulas do operador
compound
para consultar a coleção:must
cláusula para pesquisar tramas de filmes em inglês e italiano que contenham o termoBella
com o operador textmustNot
cláusula para excluir filmes lançados entre os anos 1984 a 2016 usando o operador intervalshould
cláusula para especificar preferência pelo gêneroComedy
com o operador de texto
A consulta usa o estágio de pipeline $project para:
Exclua todos os campos, exceto
title
,fullplot
,released
egenres
Adicione um campo chamado
score
Itera sobre o cursor para imprimir os documentos que correspondem à consulta.
1 import pymongo 2 import datetime 3 4 # connect to your Atlas cluster 5 client = pymongo.MongoClient('<connection-string>') 6 7 # define pipeline 8 pipeline = [ 9 {"$search": { 10 "index": "multilingual-tutorial", 11 "compound": { 12 "must": [{"text": {"path": {"value": "fullplot", "multi": "fullplot_english"}, "query": "Bella"}}], 13 "mustNot": [{"range": {"path": "released", "gt": datetime.datetime(1984,1,1,0,0,0), "lt": datetime.datetime(2016,1,1,0,0,0)}}], 14 "should": [{"text": {"query": "Comedy", "path": "genres"}}]}}}, 15 {"$project": {"_id": 0, "title": 1, "fullplot": 1, "released": 1, "genres": 1, "score": {"$meta": "searchScore"}}} 16 ] 17 # run pipeline 18 result = client["sample_mflix"]["movies"].aggregate(pipeline) 19 20 # print results 21 for i in result: 22 print(i) Antes de executar o exemplo, substitua
<connection-string>
por sua cadeia de conexão do Atlas. Certifique-se de que sua cadeia de conexão inclui as credenciais do usuário do banco de dados. Para saber mais, consulte Conectar via Drivers.Execute o seguinte comando para consultar sua collection:
python two-languages.py { 'genres': ['Drama'], 'title': 'The Moon in the Gutter', 'fullplot': "In Marseilles, a woman commits suicide after she is raped in an alley. Nightly, her brother Gerard broods at the scene hoping to catch the rapist. He lives with his lover Bella whom he neglects, an alcoholic brother who lurks about, and his father who's stayed drunk since the daughter's death, ignoring work and his own companion. At a seedy bar, Gerard meets a wealthy, nihilistic hedonist and his beautiful sister. Gerard flips for her and thinks she's his ticket out of the slum. Bella warns him otherwise and also, in jealousy, sets two thugs on him. Then Gerard thinks he's found his sister's rapist. These emotional crises force Gerard to choose what's most important.", 'released': datetime.datetime(1983, 5, 18, 0, 0), 'score': 3.909510850906372} { 'genres': ['Comedy'], 'title': 'Policewoman', 'fullplot': "Giovanna e' una bella ragazza, ma ha qualche problema con gli uomini: tutti la vogliono solo usare, anche il suo fidanzata Claudio. Trovera' una via d'uscita diventando vigile urbano. Come Giovanna d'Arco, il suo idolo, non guardera' in faccia a nessuno e con l'aiuto del pretore Patane', innamorato di lei, smascherera' una serie di intrallazzi e corruzione denunciando perfino il suo capo, Marcellini. I due paladini della giustizia coroneranno il loro sogno d'amore, trasferiti in una lontana isoletta a sud della Sicilia, ma i corrotti resteranno al loro posto.", 'released': datetime.datetime(1974, 11, 15, 0, 0), 'score': 3.4253346920013428} { 'genres': ['Comedy'], 'title': 'Love and Larceny', 'fullplot': 'Gerardo è un attore o almeno cerca di esserlo, ma il pubblico non è del suo parere. Cosè, per arrotondare gli introiti, aiuta l\'amico Lallo in un suo "lavoretto". Questo gli costa perè la prigione, dove incontra Chinotto e Gloria Patri. Uscito inizia, con l\'opposizione di Annalisa che lo vuole sposare, una carriera come truffatore, dapprima in societè con Chinotto e quindi con la bella Elena. Tutto sembra filare a gonfie vele, e le truffe divengono sempre piè grosse e di successo. Ma a volte è destino che il ragno resti preso dalla stessa tela che tesse.', 'released': datetime.datetime(1960, 2, 10, 0, 0), 'score': 3.363344430923462} { 'genres': ['Horror'], 'title': 'Tales That Witness Madness', 'fullplot': "Dr Tremayne is an enigmatic Psychiatrist running a Futuristic asylum housing four very special cases. Visited by colleague Nicholas, Tremayne explains his amazing and controversial theories as to why each of the four patients went mad... cue four distinct tales each with a different set of characters: 'Mr Tiger' tells of Paul, the sensitive and troubled young son of prosperous but constantly bickering and unlovely parents, and the boy's 'imaginary' friend, a tiger. 'Penny Farthing' tells of Timothy, an antique store owner propelled backwards in time by a penny-farthing bicycle in his shop, all the while being watched over by the constantly changing photograph of Uncle Albert, which endangers the lives of both Timothy and his beautiful wife, Ann. 'Mel' tells of Brian, a man who brings home an old dead tree and prominently displays it in his living room as a work of art. His fiery wife Bella soon becomes jealous of the tree, which the husband has lovingly named Mel, and it seems to be developing a will of its own. 'Luau' tells of Auriol, a flamboyant and ambitious literary agent who will do anything to impress her sinister new client, though he seems more interested in Auriol's beautiful and precocious young daughter Ginny. Ginny sneaks off on holiday while Auriol plans a sumptuous feast for her client.", 'released': datetime.datetime(1973, 10, 31, 0, 0), 'score': 1.9502882957458496}