Última versión de nuestro SDK de Java (2.3.3 en el momento de escribir estas líneas) introduce una nueva clase: RawQueryExecutor. Le ofrece el resultado directo de un N1QL o consulta FTS como una cadena JSON o JsonObject, igual que si estuviera utilizando la API REST directamente. La respuesta no está envuelta en filas. Como tal, puedes pasar el resultado del método directamente a tu cliente. No hay necesidad de mapeo adicional ni nada por el estilo.
Esto es particularmente útil para las consultas N1QL, ya que le permite consultar exactamente lo que necesita a través de la cláusula SELECT. Es muy eficiente combinado con los índices de cobertura adecuados.
Aquí'tamos el ejemplo de código asíncrono:
|
1 2 3 |
AsyncRawQueryExecutor asyncRawQueryExecutor= new AsyncRawQueryExecutor("default", "", bucket.core()); Observable<String> result = asyncRawQueryExecutor.n1qlToRawJson(N1qlQuery.simple("Select name, abv, ibu, style FROM `beer-sample` WHERE ibu IS NOT MISSING ORDER BY ibu LIMIT 10 OFFSET 10")); |
y la sincrónica:
|
1 2 3 |
RawQueryExecutor rawQueryExecutor = new RawQueryExecutor("default", "", bucket.core(), bucket.environment()); String jsonString = rawQueryExecutor.n1qlToRawJson(N1qlQuery.simple("Select name, abv, ibu, style FROM `beer-sample` WHERE ibu IS NOT MISSING ORDER BY ibu LIMIT 10 OFFSET 10")); |
Me encantaría saber si te resulta útil y si lo quieres también para operaciones más sencillas. ¡Dinos lo que piensas!