Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

263
Views
RavenDB no puede realizar búsquedas con el operador AND en nodejs

¿Cómo puedo realizar una búsqueda con el operador 'Y' a través de RavenDB?

Según los documentos, está escrito que necesito agregar la enumeración del operador ("Y" \ "O") como el tercer parámetro de la función de búsqueda. https://ravendb.net/docs/article-page/4.0/nodejs/client-api/session/querying/how-to-use-search

Por alguna razón, el operador AND no funciona y me da resultados OR por defecto.

Ejemplo:

Colección de usuarios:

 users/1-A: { firstName: 'Joe', lastName: 'Allen' } users/2-A: { firstName: 'Joe', lastName: 'Biden' }

La llamada al cuervo:

 session.query({ collection: 'Users' }) .search('firstName', 'Joe', 'AND') // search with AND operator .search('lastName', 'Biden') .all()

La llamada anterior devuelve ambos documentos. ¿Cuál debería ser la sintaxis apropiada para eso?

Gracias

over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

Puede encontrar ejemplos detallados y explicaciones paso a paso en las siguientes demostraciones de RavenDB :

https://demo.ravendb.net/demos/csharp/text-search/fts-query-search-basics https://demo.ravendb.net/demos/csharp/text-search/fts-query-search-operators

Entonces, esto aquí arriba es actualmente solo para el cliente C # (las demostraciones de nodeJS están por determinar)

Al usar 2 métodos de búsqueda separados :
Entonces la otra respuesta aquí, sobre el uso de andAlso , es correcta

Cuando se utiliza un método de búsqueda único :
Usar AND/OR es relevante solo cuando tiene 2 o más términos dentro del mismo método de búsqueda .

es decir:
.search('firstName', 'John Doe', 'AND')
testamento Y ambos términos (John && Doe)

.search('firstName', 'John Doe', 'OR')
será O los resultados (John || Doe)

over 4 years ago · Santiago Trujillo Report

0

Así que encontré una solución para node.js. La enumeración "AND" como tercer parámetro no me funcionó (según esta página: https://ravendb.net/docs/article-page/4.0/nodejs/client-api/session/querying/how-to- uso-búsqueda ).

Encontré otra página: https://ravendb.net/docs/article-page/4.0/nodejs/indexes/querying/searching

Que usa la función andAlso() en la consulta para usar el operador "AND" y funciona.

Ejemplo:

 const joeBiden = session.query({ collection: 'Users' }) .search('firstName', 'Joe') .andAlso() .search('lastName', 'Biden') .all()

Esto devolverá solo el documento de Joe Biden.

Tenga en cuenta que devuelve una promesa.

** Raven generará un error si llama a la función andAlso y no realiza ninguna consulta después, por lo que si recorre los posibles términos de búsqueda, recuerde excluir la función andAlso en la última búsqueda.

 const joeBiden = session.query({ collection: 'Users' }) .search('firstName', 'Joe') .andAlso() .search('lastName', 'Biden') .andAlso() // this line will cause Raven to throw an error .all()
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!