java执行mongodb增删改查

获取Mongo客户端创建链接

/**
 *  构建一个mongClient
 * @param dataSourceId
 * @return
 */
private MongoClient build(String dataSourceId){
    SysDataBase sysDataBase = sysDataBaseService.selectById(dataSourceId);
    int maxActive = sysDataBase.getMaxActive() == null ? 10 : sysDataBase.getMaxActive() <= 0 ? 10 :sysDataBase.getMaxActive();
    MongoClientOptions clientOptions = new MongoClientOptions.Builder()
            .connectionsPerHost(maxActive) // 最大连接数
            .socketTimeout(6000).build(); // 连接超时时间 60s


    ServerAddress serverAddress = new ServerAddress(sysDataBase.getHost(),Integer.valueOf(sysDataBase.getPort()));
    if (StringUtils.isEmpty(sysDataBase.getUsername()) || StringUtils.isEmpty(sysDataBase.getPassword()) || StringUtils.isEmpty(sysDataBase.getDatabaseName())) {
        return new MongoClient(serverAddress);
    }else{
        MongoCredential credential = MongoCredential.createCredential(sysDataBase.getUsername(),
                sysDataBase.getDatabaseName(),sysDataBase.getPassword().toCharArray());
        return new MongoClient(serverAddress,credential,clientOptions);
    }
}

SysDataBase用到的字段说明

private String id; // 主键

private String name; // 数据源名称

private String host; // 数据库地址

private String port; // 端口

private String databaseName; // 数据库名

private String code; // 数据库编码

private String username; // 用户名

private String password; // 密码

private Integer maxActive; // 最大连接数

新增数据

//1.获取MongoDatabase
MongoDatabase mongoDatabase = mongoDBDataSource.getMongoDatabase("e845ecbd1829246f26167d6c45c0bb6f");
//2.创建需要新增的数据
Document document = new Document();
document.put("mc","初次插入mc");
document.put("name","初次插入name");
//3.插入数据
mongoDatabase.getCollection("col").insertOne(document);

在这里插入图片描述

更新数据

//1.获取MongoDatabase
MongoDatabase database = mongoDBDataSource.getMongoDatabase(sysDataBase.getId());
//2.获取更新条件
BasicDBObject filter = new BasicDBObject();
filter.put("_id" , map.get("635fd378762cb0742c68b18e"));
//for (String mayJoyKey : mayJoyKeys) {
//    filter.put(mayJoyKey , map.get(mayJoyKey));
//}
//3.需要更新数据
Document doc = new Document();
doc.append("mc","我是修改后的mc");
doc.append("name","我是修改后的name");
Bson update =  new Document("$set",doc);
mongoDatabase.getCollection("col").updateOne(filter,update);

在这里插入图片描述

删除数据

在这里插入图片描述

//1.获取数据库连接
MongoDatabase mongoDatabase  = mongoDBDataSource.getMongoDatabase("e845ecbd1829246f26167d6c45c0bb6f");
//2.需要删除的数据的条件
BasicDBObject delObj = new BasicDBObject();
//mongodb的_id是ObjectId,所以需要这样写,普通字段可以直接delObj.put("mc","张三");根据mc为张三的来删除数据
delObj.put("_id",new ObjectId( "6358da3cf3760000e9006280"));
mongoDatabase.getCollection("col").deleteOne(delObj);

查询数据

MongoDatabase mongoDatabase  = mongoDBDataSource.getMongoDatabase("e845ecbd1829246f26167d6c45c0bb6f");

BasicDBObject queryCond = new BasicDBObject();
//模糊查询$regex
queryCond.put("name",new BasicDBObject("$regex","3"));

//精确查询
queryCond.put("mc","MongoDB 教程");

//区间查询
queryCond.put("temp", new BasicDBObject("$gte", 14).append("$lte", 16));

//或操作 mc为MongoDB 教程1 或者 name为MongoDB 教程4 的数据
BasicDBList values1 = new BasicDBList();
values.add(new BasicDBObject("mc","MongoDB 教程1"));
values.add(new BasicDBObject("name", "MongoDB 教程4"));
queryCond.put("$or",values1);

//排序,-1降序、1升序
BasicDBObject orderby = new BasicDBObject();
orderby.put("mc","-1");

//查询数据并遍历输出queryCond为查询条件、orderby为排序条件
//limit和skip用来组合分页
//.limit(): 取多少个文档
//.skip() : 跳过多少个文档
mongoDatabase.getCollection("col").find(queryCond).sort(orderby)
        .skip(pagingProgram.getSize()*(pagingProgram.getIndex()-1))
        .limit(pagingProgram.getSize()).forEach((Block<? super Document>) data->{
    data.keySet().forEach(a->{
        System.out.println(a);
    });
});
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值