Tengo muchos datos cargados en mi base de datos donde algunos de los documentos cargados no son archivos JSON y solo archivos binarios. Los datos correctos se ven así: "/foo/bar/1.json", pero los datos incorrectos tienen el formato "/foo/bar/*". ¿Hay algún mecanismo en MarkLogic que use JavaScript donde pueda filtrar estos datos basura y eliminarlos? PD: no puedo extraer archivos con mlcp que tengan un "?" en el URI y tal vez cuando intento recargar estos datos obtengo este error. ¿Alguna forma de arreglar ese extracto junto con esto?
Si todos los URI del documento contienen un ? y están en ese directorio, entonces podría usar cts.uriMatch()
declareUpdate(); for (const uri of cts.uriMatch('/foo/bar/*?*') ) { xdmp.documentDelete(uri) } Alternativamente, si está buscando encontrar los documentos binary() , puede aplicar la opción format-binary a cts.search() con cts.directoryQuery() y luego eliminarlos.
declareUpdate(); for (const doc of cts.search(cts.directoryQuery("/foo/bar/"), ['format-json']) ) { xdmp.documentDelete(fn.baseUri(doc)); } Probablemente se mantienen como binarios porque no hay extensión de archivo cuando el URI termina con un signo de interrogación y algunos valores de parámetros de cadena de consulta, es decir, 1.json?foo=bar en lugar de 1.json
Es difícil diagnosticar y solucionar problemas sin ver cuáles son las configuraciones de trabajo de MLCP y saber más sobre lo que está haciendo para cargar los datos.