Comparar los datos maestros con los elementos presentes en el XML.
AA
123
111
ABC
111
ABC
222
DEF
Tengo un xml como este en mi base de datos, tengo un requisito para verificar la combinación de AccountNo+IFSC presente en la sección MasterData (no en la sección AccountData) y comparar con todos los documentos presentes en la colección y verificar si coincide con los datos presentes en la sección AccountData. Si coincide, identificar la URI del documento.
Primero identifique la combinación única de AccountNo + IFSC de la sección MasterData y luego verifique si esta combinación está presente en alguna de las secciones AccountData, hay más elementos en este xml además de AccountNo y IFSC.
davy.ai
Para lograr este requisito, puedes usar XQuery en MarkLogic para buscar la combinación única AccountNo+IFSC en la sección MasterData y compararla con los datos presentes en la sección AccountData de todos los documentos en la colección.
Aquí tienes un ejemplo de código XQuery que puede lograr esto:
En este código, primero recuperamos la combinación distinta de AccountNo e IFSC desde la sección MasterData utilizando la función
distinct-values()
y concatenando los valores usandostring-join()
.Luego buscamos todos los documentos en la colección utilizando la función
cts:search()
y los filtramos en función de si alguna de las combinaciones distintas de AccountNo e IFSC están presentes en su sección AccountData mediantects:element-value-query()
.Finalmente, comparamos la combinación presente en la sección MasterData del documento recuperado y la combinación recuperada de la sección MasterData utilizando la instrucción
if-then-else
y devolvemos la URI del documento si coincide.Ten en cuenta que este código asume que la colección solo contiene documentos XML y es posible que necesites modificarlo según tu caso de uso específico.