Estoy tratando de escribir una consulta cts de JavaScript para consultar solo valores únicos de una clave de un documento JSON basado en otra clave. es decir, similar a una consulta como: select distinct(name) from data-hub-staging where source='source1'
{ "source": "source1", "name": "John", "DOB": "1-01-1990", "load_date": "2021-10-23 10:23:55" }, { "source": "source1", "name": "John", "DOB": "1-01-1990", "load_date": "2021-10-24 10:23:55" }, { "source": "source1", "name": "Mark", "DOB": "1-01-1990", "load_date": "2021-10-24 10:23:55" }He estado intentando la siguiente consulta, pero devuelve todos los campos. Solo quería el campo de nombre único.
const query = cts.jsonPropertyValueQuery( "source", "source1"); [...new Set (cts.search(query) .toArray() .map(doc => doc.root.name).sort())] Current result: [John,John,Mark] Expected result: [John,Mark]Los valores de name no están siendo duplicados por el Conjunto porque son nodos de text() . Debe obtener el .valueOf() esos nodos de texto y luego las cadenas se desduplicarán.
const query = cts.jsonPropertyValueQuery( "source", "source1"); [...new Set (cts.search(query) .toArray() .map(doc => doc.root.name.valueOf()).sort())]