Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

242
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda