irpas技术客

四.MongoDB入门-Java操作MongoDB_墨家巨子@俏如来_java mongodb 入门

大大的周 4017

MongDD的语法很多,我们只需要记一些常用的即可,在实际开发中还是使用Java面向对象的方式来操作Mongodb。

1.小试牛刀 1.1.导入依赖

在 Java 程序中如果要使用 MongoDB,你需要确保已经安装了 Java 环境及 MongoDB JDBC 驱动,创建一个普通java项目,导入如下依赖

<dependencies> <dependency> <groupId>org.mongodb</groupId> <artifactId>mongo-java-driver</artifactId> <version>3.12.10</version> </dependency> </dependencies> 1.2.连接MongDB

不使用账号连接:mongodb://localhost:27017 , 使用账号连接 mongodb://账号:密码@localhost:27017/

//1.创建客户端 : mongodb://用户名:密码@127.0.0.1:27017 //如果没有账号:mongodb://127.0.0.1:27017 com.mongodb.client.MongoClient mongoClient = MongoClients.create("mongodb://testuser:testuser@127.0.0.1:27017"); 1.3.查询文档

通过客户端链接数据库,然后查询文档

//2.链接数据库tempdb MongoDatabase userDB = mongoClient.getDatabase("tempdb"); //3.获取集合 user FindIterable<Document> documentFindIterable = userDB.getCollection("user").find(); //4.拿到文档迭代器 MongoCursor<Document> iterator = documentFindIterable.iterator(); //5.遍历文档 while(iterator.hasNext()){ System.out.println(iterator.next()); } 2.MongDB的CRUD 2.1.数据库CRUD

通过listDatabases查询所有数据库

//列出所有数据库 ListDatabasesIterable<Document> listDatabasesIterable = mongoClient.listDatabases(); MongoCursor<Document> iterator1 = listDatabasesIterable.iterator(); while(iterator1.hasNext()){ System.out.println(iterator1.next()); }

通过 getDatabase 获取指定数据库

MongoDatabase empdb = mongoClient.getDatabase("empdb"); System.out.println(empdb.getName());

drop删除数据库

MongoDatabase empdb = mongoClient.getDatabase("empdb"); empdb.drop();

创建数据库 ,直接使用 mongoClient.getDatabase(“db”) ,当添加数据的时候会自动创建数据库

MongoDatabase testdb = mongoClient.getDatabase("testdb"); testdb.createCollection("user"); 2.2.集合CRUD

查看集合

MongoCursor<Document> iterator2 = userDB.listCollections().iterator(); while (iterator2.hasNext()){ System.out.println(iterator2.next()); }

获取某个集合

MongoCollection<Document> user = userDB.getCollection("集合名");

添加集合

userDB.createCollection("user"); //集合名,固定大小 , 最大文档数 ,最大字节数 userDB.createCollection("user", new CreateCollectionOptions().capped(true).maxDocuments(1000).sizeInBytes(1024*1024*1024)); //======================================================================================================== //验证规则,添加的文档中必须出现username和 age字段 ValidationOptions validationOptions = new ValidationOptions().validator(Filters.or(Filters.exists("username"),Filters.exists("age"))); userDB.createCollection("user", //集合名,固定大小 , 最大文档数 ,最大字节数 new CreateCollectionOptions().capped(true).maxDocuments(1000).sizeInBytes(1024*1024*1024) //添加的文档必须满足的验证规则 .validationOptions(validationOptions) );

删除集合

//拿到集合 MongoCollection<Document> user = userDB.getCollection("user"); //删除集合 user.drop(); 2.3.文档CRUD

创建文档

//创建集合 userDB.createCollection("tempcol"); //拿到集合 MongoCollection<Document> tempcol = userDB.getCollection("tempcol"); //创建文档 Document doc = new Document(); doc.append("_id",1); doc.append("username","zs"); doc.append("age",18).append("info",new Document("x","22").append("y","33")); //添加文档 tempcol.insertOne(doc);

获取文档

//构建查询的内容 Document bson = new Document(); bson.put("_id",1); //拿到集合,执行find FindIterable<Document> documentFindIterable1 = userDB.getCollection("tempcol").find(bson); //遍历结果 MongoCursor<Document> iterator3 = documentFindIterable1.iterator(); while(iterator3.hasNext()){ System.out.println(iterator3.next()); } //组装条件 MongoCollection<Document> tempcol = userDB.getCollection("tempcol"); Bson filter = Filters.and(Filters.eq("sex", 1), Filters.gte("age", 18)); FindIterable<Document> documentFindIterable = tempcol.find(filter); //获取文档数量 userDB.getCollection("tempcol").countDocuments();

删除文档

//构建条件文档 Bson filter = Filters.eq("_id", 1); //执行文档删除 DeleteResult result = userDB.getCollection("tempcol").deleteOne(bson); System.out.println(result); //删除符合条件的第一个文档 userDB.getCollection("tempcol").deleteOne(Filters.eq("likes", 200)); //删除符合条件的所有文档 userDB.getCollection("tempcol").deleteMany (Filters.eq("likes", 200));

修改文档

//过滤条件,_id = 1 Bson filter = Filters.eq("_id", 1); //把 age 设置为 100 Document update = new Document("$set",new Document("age",100)); //执行修改 UpdateResult updateResult = userDB.getCollection("tempcol").updateOne(filter, update); System.out.println(updateResult);

文章结束,希望对你有所帮助,喜欢的话请给个好评


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #JAVA #mongodb #入门 #1小试牛刀11导入依赖在 #程序中如果要使用