Menú Base. Búsquedas

Anexo sintaxis de búsqueda mongoDb y reducida

Persiana sólo disponible para usuarios de perfil administrador y expertos (g1)

Los botones del primer bloque Ayudas a la búsqueda, están predefinidas y permiten realizar de forma muy rápida algunas de las más habituales.

En Texto a buscar, se facilita buscarlo dentro de todos los documentos de BD, al pulsar uno de los botones inferiores, buscando así, dentro del contenido del _id, resumen, descomposiciones, imágenes...

 

Más abajo hay una herramienta avanzada, Búsqueda, que admite una sentencia de búsqueda find() completa de MongoDB, o una búsqueda reducida de Ingra.

Se admiten condiciones como campo=valor, por ejemplo cla=car separados por espacios en blanco para unir varias condiciones como AND. También se admite el símbolo cla== para indicar que es "una clase o algunas de sus subclases". La existencia de un campo con información se hace con la sintaxis <campo>!! y la negación de existencia <campo>! . Los términos sueltos entre espacios en blanco se buscan en el índice de texto si la base está indizada, y si contiene un punto, se busca en el identificador (campo _id) como una máscara inexacta incluyendo el no distinguir mayúsculas/minúsc. Por ejemplo, 'Bu.01' busca identificadores que contengan 'bu' en la clase y '01' en cualquier parte del código, o '.preven' busca ese texto en el código de cualquier clase.

También se ha añadido una calculadora javascript si la expresión COMIENZA con un =, por ejemplo: =10+45+Math.sin(245) incluso con varias líneas separadas con ; permitiendo definición de funciones, etc.

  Cada búsqueda que se teclea, queda en el historial del navegador actual (hasta que se limpie la memoria), de forma que con el desplegable podemos recuperar y modificar búsquedas anteriores.

Con una selección de conceptos, se pueden utilizar los 4 botones de edición inferiores para realizar operaciones masivas contra la BD (del orden de cientos de miles de registros tratados instantáneamente o en segundos).

ATENCIÓN: los botones actúan sobre toda la lista de conceptos buscados, no sobre los visibles o los seleccionados en la columna del menú contextual.

 

Se puede:

1. Eliminar documentos

2. Cambiar valor campo masivamente mediante expresiones regulares (por ejemplo poniendo res=d.res+" "+i, modificará los resúmenes de todos los documentos buscados, poniendo el resumen de cada documento (d) y el número de orden de la línea (i) en base cero. Con la letra 'p' y un espacio en blanco delante de la expresión, se PRUEBA el resultado indicando qué cambios se harían.

Atención, una particularidad es que al cambiar campos de campos de tipo objeto, por ejemplo, si en un documento tenemos:
{
"_id":"binequ.P1.A01.A",
"cla":"binequ",
"cod":"P1.A01.A",
"res":"08-046",
"lecs":{"20150630":9.2,"20150701":10.92}
}

y queremos eliminar de muchos conceptos los registros de la fecha 20150630, no debemos hacerlo poniendo lecs[20150630]=null sino lecs.20150630=null. Medea ya envuelve los campos que ponemos en el diálogo para que sea "lecs.20150630"=null.

IMPORTANTE: También sirve para recodificar conceptos cambiando el campo _id (con lo que cambiarán automáticamente los campos cla y cod). Esta es la operación más compleja y pesada de cambiar porque mongoDB no permite cambiar identificadores, sino que hay que hacer por cada cambio una copia completa de todo el concepto y todas sus referencias y eliminar el antiguo. Además hay que buscar todas las referencias que apuntaban a ese _id y cambiarlas también. 

Otra herramienta para modificar varias es multi-seleccionar unas líneas y seleccionando el campo de edición de una de ellas, cambiar el valor

 

Los siguientes sólo en BBDD mongodb alojadas como servicio en nuestros servidores, no para BBDD locales en el navegador:

3. Cambiar código de campo, cambiándolo en todos los documentos que hagan referencia a él.

4. Recodificar conceptos, para completarlos con ceros por la izquierda y hacerlos uniformes en tamaño.

 

Al realizar una búsqueda, se muestra sobre la lista de resultados, en una pista, la sintaxis del find() que se hace contra la base MongoDB. Esto nos sirve para ver algún problema con lo que creemos que estamos buscando o para copiar la sentencia y modificarla.

En la lista de resultados, la flecha Búsqueda actual a ventana principal, permite llevar esta búsqueda a la lista de ventana que tiene las funciones de menú contextual, nos permite mostrar las georreferencias de las mismas, etc.