1つの 重複除外: 2 3。 我々は再異なる方法によってだけでなく、MySQLのキーワードに指定されたフィールドに行くことができる 4。 5。 DBObjectをクエリ= 新しい新しいBasicDBObject(); 6。 mongoTemplate.getCollection( "COLLECTIONNAME")の別個の(「重複排除フィールド。名前" 、クエリ) 7。 8。 9つの。 重合のパケット: 10 。11 次のように、例えば、フィールド集約統計の異なる値の数を使用して: 12である 13は、 コンテンツの統計フィールド、エイリアス値 14 15凝集集約= Aggregation.newAggregation(Aggregation.group( ( "値" .. AS "コンテンツ")COUNT() )); 16 // クエリ 17のクライテリアクライテリア= 新しい新基準()WHERE( "条件")。(「条件」であります); 18 criteria.and( "条件二").is( "条件二" )。 19 aggregation.match(基準);リスト<マップ>マップ= mongoTemplate.getCollection( "COLLECTIONNAME" ).aggregate(集約)。 20 21 22 另一种写法 23の 24基準基準= 新規。クライテリア()ここで、( "条件一")は.is( "条件一" )。 25 criteria.and( "条件二").is( "条件二" )。 26 Aggregation.sort(ソート)、Aggregation.limit(10 ) 27集約集約= Aggregation.newAggregation(Aggregation.match(基準)、Aggregation.group( "コンテンツ")。(カウント)。( "値"という)、アグリゲーション.sort(ソート)、Aggregation.limit(10 ))。 28リスト<DBObjectを> PVS = mongoTemplate.aggregate(集約、 "COLLECTIONNAME"、DBObjectを。クラス).getMappedResults(); 29 30 31れる のクエリMongoのページング: 32 33で 直接(スキップ)を加えた制限は、()タブを達成することができ、しかし、大量のデータの場合には、この方法は、欠陥の性能である 34 35すべての私の最適化を次のように記録に最後のレコードID、クエリとしてクエリの次のページいったん、クエリはこのIDよりも大きくすることができます、ソート値を設定ソーティング- 1は、降順、昇順を表します。 36 37 [ DBObjectをクエリ= 新しい新しいBasicDBObject(); 38である( "条件"、 "条件" query.put ); 39 のDBcursorのDBcursor; 40 IF(ページ1 == == 0 || ||ページ。StringUtil.isStrEmpty(lastId )){ 41 DBcursor = mongoTemplate.getCollection(APPID).find(クエリ).sort(新 BasicDBObject( "名前"、-1))(サイズ*(ページ- 1スキップします。))の制限(サイズ)。 42 } 他{ 43 BasicDBObject decoment = 新しい BasicDBObject( "$のGT"、新たObjectId(lastId))。 44 query.put( "_ ID" 、decoment)。 45 のDBcursor = mongoTemplate.getCollection(APPID).find(クエリ).sort(新 BasicDBObject( "名前"、-1))スキップ(サイズ*(ページ- 1。 ))リミット(サイズ)。 46 } 47 リターン dbCursor.toArray()。