MongoDB分组取每组中第一条数据 java
时间: 2023-11-06 16:06:37 浏览: 102
MongoDB聚合分组取第一条记录的案例与实现方法
使用MongoDB的聚合框架可以实现分组取每组中第一条数据的操作。
以下是一个Java代码示例:
```
MongoClient mongoClient = new MongoClient("localhost", 27017);
MongoDatabase database = mongoClient.getDatabase("test");
MongoCollection<Document> collection = database.getCollection("students");
List<Bson> pipeline = Arrays.asList(
Aggregates.group("$class",
Accumulators.first("name", "$name"),
Accumulators.first("age", "$age"))
);
MongoCursor<Document> cursor = collection.aggregate(pipeline).iterator();
while (cursor.hasNext()) {
Document document = cursor.next();
System.out.println(document.toJson());
}
mongoClient.close();
```
在这个示例中,我们使用了聚合框架的`group`操作来按照`class`字段进行分组。然后使用`first`操作符来取每组中的第一条记录的`name`和`age`字段。最后将结果打印出来。
注意,如果要取每组中的第一条完整记录,可以使用`Accumulators.first("doc", "$$ROOT")`来取得完整的文档。
阅读全文