MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Azure CosmosDB usando drivers Mongo:obter contagem sem obter todos os documentos com base no elemento no subdocumento em C#.Net


Nem todos os recursos de consulta do MongoDB são exibidos na API do Cosmos MongoDB e, atualmente, o pipeline de agregação é um desses recursos não implementados. É por isso que você está recebendo o erro informando $group não é suportado.

Agregação geral (sum, min, max, avg, count ) foram adicionados há algum tempo à API do DocumentDB.

Você teria que fazer sua própria agregação na API do MongoDB, por enquanto.

Nota:count() é suportado, portanto, supondo que você filtre seus dados (sem pipeline de agregação), você pode fazer algo como:
db.collection.find({...}).count()

Da mesma forma, você pode fazer um $min ou $max por meio de triagem. Então, para $max , você pode fazer algo assim para encontrar o valor máximo de foo :
db.collection.find({...},{foo:1}).sort({foo:-1}).limit(1)