sql >> Databáze >  >> NoSQL >> MongoDB

Návrh aplikací jarních dat mongodb a agregace dat

Kdykoli Spring Data Mongo postrádá AggregationOperation, kterou potřebujete (k reprodukci $addFields , $redact ...), řešením (někteří mohou říkat rychlé a špinavé řešení) je předat nezpracovanou agregaci do Spring pomocí přímo nástrojů com.mongodb.client :

String collectionName = mongoTemplate.getCollectionName(Payment.class);
MongoCollection<Document> collection = mongoClient.getDatabase(mongoTemplate.getDb().getName()).getCollection(collectionName);

AggregateIterable<Document> ai = collection.aggregate(Arrays.asList(
    Document.parse(/* { "group" : { ... } } */)))

MongoCollection.aggregate() je předán do agregačního kanálu jako List<Document> (ve skutečnosti List<? extends Bson> v nezpracované formě, jak je navrženo výše pomocí Document.parse(), a samozřejmě můžete také použít new Document() aby to vypadalo spíše jako správný OOP kód. Mám tendenci používat nezpracovanou formu, když je nezpracovaná agregace složitá nebo když je pro mě mnoho vnořených komponent pro vnořený dokument příliš podrobných, ale to je věc vkusu.

AKTUALIZACE 2020.

Použijte toto řešení namísto. Díky tomu je snadné používat jak AggregationOperation poskytované Springem, tak vaše vlastní „raw“ agregační fáze na stejném místě.




  1. jak odeslat libovolný objekt json na webapi

  2. Jak nastavit Redis ve vlastním jmenném prostoru jako mezipaměť a MQ ve webové aplikaci ServiceStack pomocí Structuremap

  3. Apache HBase Replication:Provozní přehled

  4. Schéma pro hodnocení uživatelů – DB klíč/hodnota