es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Existe una forma de escribir una consulta de Azure Cosmos Db que me permita ver si un campo de registro de la base de datos que es una lista es un subconjunto de una matriz proporcionada?

Tengo una lista de cadenas y mis registros de cosmos db tienen un campo que también es una lista de cadenas. Necesito escribir una consulta de cosmos db que verifique si la lista de cadenas en el campo de registro de cosmos db es un subconjunto de la lista de cadenas que proporcioné.

Ejemplo:

Registro de db:

json {
“nombre”: “Jake”,
“ids”: [1, 2, 3, 4]
}

otherIds: [1, 2, 3, 4, 5]

Necesito una consulta que verifique si los ids del registro de la base de datos son un subconjunto de otros ids.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para verificar si la lista de cadenas en el campo del registro de cosmos db es un subconjunto de la lista de cadenas proporcionada, puede utilizar la función ARRAY_CONTAINS en la API de SQL de Cosmos DB.

    Aquí está una consulta de ejemplo:

    SELECT * FROM c 
    WHERE ARRAY_CONTAINS(@otherIds, c.ids, true)
    

    En esta consulta, c se refiere al contenedor de Cosmos DB, ids es el nombre del campo en el registro que contiene la lista de cadenas y @otherIds es la lista de cadenas proporcionada.

    La función ARRAY_CONTAINS comprueba si los valores en la matriz de c.ids están contenidos dentro de la matriz de @otherIds. El parámetro true especifica que la comparación no distingue mayúsculas de minúsculas.

    Si hay una coincidencia, la consulta devolverá el registro completo. Si no hay una coincidencia, la consulta devolverá un conjunto de resultados vacío.

    Tenga en cuenta que el parámetro @otherIds debe pasarse como un parámetro de matriz, no como un único valor de cadena.

Comments are closed.