mongodb java操作常用写法
MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。下面介绍的是用java操作MongoDB的一些常用写法。
1.引用java操作MongoDB驱动包
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongo-java-driver</artifactId>
<version>3.6.0</version>
</dependency>
2.java操作MongoDB一些常用写法
public class MongoDBTest { //定义一个客户端 private MongoClient client = null; //定义一个MongoDB数据库 private MongoDatabase database = null; @Before public void init() { //连接MongoDB客户端 client = new MongoClient("127.0.0.1", 27017); //使用数据库mongoDataBase database = client.getDatabase("mongoDataBase"); } /** * * @描述:向user集合中添加一条数据 */ @Test public void testInsertOne() { //获取user集合 MongoCollection<Document> collection = database.getCollection("user"); Document document = new Document(); document.append("userName", "jack"); document.append("age", 23); document.append("sex", "男"); collection.insertOne(document); } /** * * @描述:向user集合中添加多条数据 */ @Test public void testInsertMany() { //获取user集合 MongoCollection<Document> userCollection = database.getCollection("user"); //定义多个Document对象 Document document1 = new Document("userName", "lily"); document1.append("age", 24); document1.append("sex", "男"); Document document2 = new Document("userName", "mary"); document2.append("age", 30); document2.append("sex", "女"); Document document3 = new Document("userName", "小吴"); document3.append("age", 27); document3.append("sex", "男"); userCollection.insertMany(Arrays.asList(document1, document2, document3)); } /** * * @描述:删除user集合中数据 */ @Test public void remove() { //获取user集合 MongoCollection<Document> userCollection = database.getCollection("user"); //执行删除的方法(删除age=23的所有人) //构造删除条件 Bson delBson = Filters.eq("age", 23); //一次性删除所有符合条件的数据(删除age=23的所有人) userCollection.deleteMany(delBson); } /** * * @描述:删除user集合中数据(带多个删除条件的) */ @Test public void remove2() { //获取users集合 MongoCollection<Document> userCollection = database.getCollection("user"); //执行删除的方法(删除age>=20 并且 age<=30的所有人) //构造删除条件(age>=20) Bson delBson1 = Filters.gte("age", 20); //构造删除条件(age<=30) Bson delBson2 = Filters.lte("age", 30); //合并删除条件 Bson delBson = Filters.and(delBson1, delBson2); userCollection.deleteMany(delBson); } /** * * @描述:查询出user集合中所有数据 */ @Test public void testGetAll2() { //获取user集合 MongoCollection<Document> userCollection = database.getCollection("user"); //查询所有文档 FindIterable<Document> allDocuments = userCollection.find(); //获取迭代器 MongoCursor<Document> iterator = allDocuments.iterator(); while (iterator.hasNext()) { Document document = iterator.next(); System.out.println(document); } } /** * * @描述:有条件查询user集合数据 */ @Test public void testGet() { //获取users集合 MongoCollection<Document> userCollection = database.getCollection("user"); //查询age>=25 并且age <=30的人 Bson queryBson = Filters.and(Filters.gte("age", 25), Filters.lte("age", 30)); FindIterable<Document> allDocuments = userCollection.find(Filters.and(queryBson)); //获取迭代器 MongoCursor<Document> iterator = allDocuments.iterator(); while (iterator.hasNext()) { Document document = iterator.next(); System.out.println(document); } } /** * * @描述:分页查询出users集合中的数据 */ @Test public void testGet2() { //获取users集合 MongoCollection<Document> userCollection = database.getCollection("user"); //查询前两个数据,skip(0):跳过0个,limit(2)查询2个 FindIterable<Document> allDocuments = userCollection.find(); FindIterable<Document> page = allDocuments.skip(0).limit(2); //获取迭代器 MongoCursor<Document> iterator = page.iterator(); while (iterator.hasNext()) { Document document = iterator.next(); System.out.println(document); } } /** * * @描述:修改操作 */ @Test public void update() { //获取user集合 MongoCollection<Document> userCollection = database.getCollection("user"); ////修改 将userName为"lily" 的age改为25 //db.users.update({"userName":"lily"},{$set:{"age":25}}); //条件 Bson eqBson = Filters.eq("userName", "lily"); //要修改的内容 Document updateBson = new Document("$set", new Document("age", 25)); UpdateResult updateMany = userCollection.updateMany(eqBson, updateBson); System.out.println(updateMany.toString()); } @After public void close() { client.close(); } }
注意:本文仅代表个人理解和看法哟!和本人所在公司和团体无任何关系!