0
点赞
收藏
分享

微信扫一扫

Java中使用mongodb

依赖

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>

配置文件

spring:
  data:
    mongodb:
      uri: mongodb://username:password@ip:port/db
      # uri-eg:mongodb://admin:123456@127.0.0.1:27017/userdb

代码示例

public class MongoDemo{
    
    @Autowired
    private MongoTemplate mongoTemplate;	//引入MongoTemplate
    
    public void getDataFromMongo(){
        MongoCollection<Document> mongoCollection = this.mongoTemplate.getCollection("collection_name");	//使用MongoTemplate获取想要取数据的集合
        MongoCursor<Document> result = mongoCollection.find().iterator();	//调用find()方法获取数据
        //遍历返回的数据
        while(result.hasNext()){
            Document document = result.next();	//获取返回的文档
            String fieldValue = document.get("field_name");	//get文档中指定字段的数据
            // do something
        }
    }
}

find()使用条件查询

//需要Bson类型对象作为参数
//构建查询条件
Bson bson = Filters.eq("field_name","value");	//eq为查询指定字段为指定值的数据  更多方法可以在IDE中Filters.之后看到
//...
MongoCursor<Document> rs = mongoCollection.find(bson).iterator();	//将Bson对象作为参数给find()方法
//遍历数据
//...

//聚合管道在Java中的使用
//获取某个字段的值重复次数大于等于2的数据
AggregateIterable<Document> rs = mongoCollection.aggregate(Arrays.asList(
                    Document.parse("{$group:{\"_id\":\"$fieldName\",count:{$sum:1}}}"),
                    Document.parse("{$match:{count:{$gte:2}}}")));
MongoCursor<Document> iterator = rs.iterator();
//遍历数据
//...

//find()跳过指定条数的数据以及限制返回的文档数量
MongoCursor<Document> rs = mongoCollection.find().skip(skipNum).limit(limitNum).iterator();	//跳过指定skipNum数量的数据以及限制返回数量为limitNum。建议skip()与sort()一起用,否则可能会不知道是不是需要跳过的数据。

举报

相关推荐

0 条评论