Uso Azure CosmosDb con MongoDb Api y obtuve una colección de documentos con una estructura a continuación. Tengo que filtrar documentos por parámetro, ej.
x => x.Parameters.Any(xx => xx.Key == ParameterNames.ShiftId && (int)xx.Value == shiftId)Me parece que para un mejor rendimiento necesito crear un índice, pero no puedo encontrar ninguna información sobre cómo puedo hacerlo.
{ "_id": "08d8c696-2b7b-f227-d5dd-0647a8d51c1c", "State": 2, "Created": { "$date": "2021-02-01T09:45:54.986Z" }, "TailId": "e8fb236e-4d48-417b-bf5a-73f1d48fe239", "Parameters": [{ "k": "ShiftId", "v": 181 }, { "k": "Id", "v": "147814878155" }, .... ]}
Para la API de Mongo de Cosmos DB, puede intentar agregar un índice comodín en Parameters como se describe en los documentos .
Si está en posición de cambiar su modelo, probablemente obtendrá un mejor rendimiento al refactorizar la matriz de Parámetros en propiedades más cercanas a la raíz del documento. Por ejemplo:
{ "_id": "08d8c696-2b7b-f227-d5dd-0647a8d51c1c", "State": 2, ... "ShiftId": 181, }o
{ "_id": "08d8c696-2b7b-f227-d5dd-0647a8d51c1c", "State": 2, ... Parameters: { "ShiftId": 181, "Id": "147814878155" } }