Chciałem użyć programu kosmosdb do przechowywania danych szeregów czasowych określonych w document-centric design. Korzystając z oficjalnego sterownika mongodb, próbowałem napisać kilka prostych instrukcji agregujących; jednak otrzymałem błędy stwierdzające, że $ unwind i $ group nie są obsługiwane. Biorąc pod uwagę, że kosmosdb był reklamowany jako zamiennik w mongodb, brakowało mi kroku lub agregacja nie jest obsługiwaną funkcją.Czy platforma Azure Cosmos DB - agregacja interfejsu API Mongo
retrieve.Aggregate().Unwind(i => i.Observations).Group(new BsonDocument {
{"_id", "$Observations.Success"},
{"avg", new BsonDocument{
{"$avg", "$Observations.Duration"}
}}
}).ToList();
Biorąc pod uwagę, że "pod spodem" dzieje się to, że protokół transmisji z "sterownika" jest "mapowany" na określone metody CosmosDB, wówczas takie konkretne błędy wskazywałyby, że nie jest on obsługiwany. Szybki fragment "wyszukiwarki silnika" pokazuje tylko ostatnie dodatki, aby umożliwić "agregację SQL" i brak dokumentacji sugerującej, że istnieje wsparcie dla agregacji MongoDB. Więc jeśli nie zostało to ostatnio dodane, żadna dokumentacja w połączeniu z błędami wzmacniającymi sprawę nie oznaczałaby "Nie". Myślę, że konkretne błędy są tutaj konkretną rzeczą. –
@NeilLunn Podejrzewam, że również. Nazywaj mnie naiwnością, ale miałem nadzieję, że zrobiłem coś złego. – Tedford
@Tedford - Potok agregacji jest teraz obsługiwany. Zobacz moją pokrewną odpowiedź (wraz z linkiem do opublikowanej listy obsługiwanych funkcji). –