Java操作MongoDB数据库常用方法介绍

1.连接数据库

        导入jar包

        创建MongoDB数据库对象

MongoClient mc = new	MongoClient("localhost", 27017);

2.获取所有的数据库名

List<String> databaseNames = mc.getDatabaseNames();

3.获取所有的数据库的对象

MongoDatabase db = mc.getDatabase("myschool");

4.获取库中所有的collection(表)

MongoIterable<String> listCollectionNames = db.listCollectionNames();

5.获得collection(表)对象

MongoCollection<Document> collection = db.getCollection("Fruits1");

6.获取表里每个Document(记录)对象

FindIterable<Document> find = collection.find();

7.增加数据

        增:先创建Document对象 利用put方法 保存K和Value K为字段名 value为值 

Document doc = new Document();
doc.put("uid", 18);
doc.put("utime", new Date());
doc.put("uname", "小王");
collection.insertOne(doc);

一次添加多个用List保存Document对象 用many方法

Document doc = new Document();
doc.put("uid", 18);
doc.put("utime", new Date());
doc.put("uname", "小王");

Document docc = new Document();
doc.put("uid", 19);
doc.put("utime", new Date());
doc.put("uname", "大王");
List<Document> dlist=new ArrayList<>();
dlist.add(doc);
dlist.add(docc);

collection.insertMany(dlist);

8.删除数据 删除第一个 deleteOne(条件)


	//要传入Bson对象
	Bson eq = Filters.eq("uname", "大王");
	
	
	DeleteResult deleteOne = coo.deleteOne(eq);
	System.out.println(deleteOne);//返回执行语句结果
	 MongoCursor<Document> iterator = coo.find().iterator();
	 while(iterator.hasNext()) {
		 System.out.println(iterator.next());
	 }

一次删除符合条件的全部 deleteMany(条件)

	//要传入Bson对象
	Bson eq = Filters.eq("uid", 18);
	
    //	将符合条件的一次全删
	DeleteResult deleteMany = coo.deleteMany(eq);
	System.out.println(deleteMany);

	 MongoCursor<Document> iterator = coo.find().iterator();

9.修改  修改一条 updateOne(条件, 内容);

MongoClient mc = new MongoClient("localhost", 27017);
	MongoDatabase db = mc.getDatabase("Fruits");
	MongoCollection<Document> collection = db.getCollection("Fruits1");
//设置修改条件
	Bson eq = Filters.eq("uid", 17);
	Document doc = new Document();
//修改的的内容
	doc.put("$set",new  Document("uname", "小王"));
	UpdateResult row = collection.updateOne(eq, doc);
    //打印修改条数
	System.out.println(row);
	mc.close();

修改多条  updateMany(条件, 内容);

//将符合条件的数据全部修改
UpdateResult row = collection.updateMany(eq, doc);

10.查询 全查 find()


	FindIterable<Document> find = collection.find();
	for (Document document : find) {
		System.out.println(document);
		
	}

带条件查询  find(Bson bson)

Bson eq = Filters.and(Filters.eq("uid", 17),Filters.eq("uscore",5)); 
	
	FindIterable<Document> find = collection.find(eq);
	for (Document document : find) {
		System.out.println(document);
		
	}

模糊查询:Filters.regex("key","value")  ^以XX开头  $以XX结尾

Bson regex = Filters.regex("uname","王");
	FindIterable<Document> find = collection.find(regex);
	for (Document document : find) {
		System.out.println(document);
		
	}

11.分页

skip(跳过几个).limit(每页显示几个);

 FindIterable<Document> limit = collection.find().skip(1).limit(3);
	for (Document document : limit) {
		System.out.println(document);
		
	}

12.排序 sort(Bson bson)  -1降序 1升序 

方式1:

Bson bson = Filters.eq("_id",-1);
	 FindIterable<Document> limit = collection.find().sort(bson);
	for (Document document : limit) {
		System.out.println(document);
		
	}

方式2:

FindIterable<Document> limit = collection.find().sort(new Document("_id", 1));
	for (Document document : limit) {
		System.out.println(document);
		
	}

13.映射对象

        1.获得gson对象

        2.调用fromJson(String json, Class<FruitsCommit>) 方法完成orm 

MongoClient mc = new MongoClient("localhost", 27017);
	MongoDatabase db = mc.getDatabase("Fruits");
	MongoCollection<Document> collection = db.getCollection("Fruits1");
	//获取gson对象
	Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd").create();
	
	FruitsCommit fc = new FruitsCommit();
	
	FindIterable<Document> find = collection.find();
	 List<FruitsCommit> flist=new ArrayList<FruitsCommit>();
	 //循环表里的数据
	for (Document doc : find) {
		//orm
		FruitsCommit json = gson.fromJson(doc.toJson(), FruitsCommit.class);
		//添加
		flist.add(json);
	}
	//循环展示对象信息
	for (FruitsCommit fx : flist) {
	System.out.println(fx);	
	}
	

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值