mongodb用java语言_Mongodb系列- java语言客户端简单使用(CRUD)

本文主要向大家介绍了Mongodb系列- java语言客户端简单使用(CRUD),通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助。

Mongodb提供了很多的客户端: shell,python, java, node.js...等等.

以 java 为例实现简单的增删改查

pom文件:

org.mongodb

mongodb-driver

3.4.3

org.mongodb

mongodb-driver-async

3.4.3

org.slf4j

slf4j-log4j12

1.7.25

在这里我们先封装一个mongodb管理类:

import java.util.ArrayList;import java.util.List;import java.util.Map;

import org.bson.Document;import org.slf4j.Logger;import org.slf4j.LoggerFactory;

import com.mongodb.MongoClient;import com.mongodb.client.MongoCollection;import com.mongodb.client.MongoCursor;import com.mongodb.client.MongoDatabase;import com.mongodb.client.model.CreateCollectionOptions;import com.mongodb.client.result.DeleteResult;/**

* MongoDB管理类

* @author jiangyuechao

*

*/public class MongoDBHelper {

static Logger logger = LoggerFactory.getLogger(MongoDBHelper.class);

static String ip = "10.80.18.1";

//10.80.21.41 10.80.18.1

static MongoClient mongoClient = new MongoClient(ip, 27017);

//MongoDatabase实例是不可变的

static MongoDatabase database;

//firstDB

public static void connect(String databaseName){

database = mongoClient.getDatabase(databaseName);

}

public static MongoCollection getCollection(String collectionName){

//MongoCollection实例是不可变的

if(!collectionExists(collectionName)){

return null;

}

MongoCollection collection = database.getCollection(collectionName);

return collection;

}

public static boolean collectionExists(final String collectionName) {

boolean collectionExists = database.listCollectionNames()

.into(new ArrayList()).contains(collectionName);

return collectionExists;

/*MongoIterable mongoIterable = database.listCollectionNames();

for (Iterator iterator = mongoIterable.iterator(); iterator.hasNext();) {

String name = iterator.next();

logger.info("name:{}", name);

if(name.equals(collectionName)){

return true;

}

}

return false;*/

}

public static void getAllDocuments(MongoCollection collection){

MongoCursor cursor = collection.find().iterator();

try {

while (cursor.hasNext()) {

System.out.println(cursor.next().toJson());

}

} finally {

cursor.close();

}

}

public static String getDocumentFirst(MongoCollection collection){

Document myDoc = collection.find().first();

return myDoc.toJson();

}

public static void createDocument(MongoCollection collection,Map map){

System.out.println("--------------------");

map.forEach((k,v)->{ System.out.println("Key : " + k + " Value : " + v);});

}

/**

* 插入一个Document

* @param collection

* @param doc

*/

public static void insertDocument(MongoCollection collection,Document doc){

collection.insertOne(doc);

}

/**

* 插入多个Document

* @param collection

* @param documents

*/

public static void insertManyDocument(MongoCollection collection,List documents){

collection.insertMany(documents);

}

/**

* 显示创建集合

*/

public static void explicitlyCreateCollection(String collectionName){

database.createCollection(collectionName,

new CreateCollectionOptions().capped(false));

}

// 删除集合的所有文档

public static long deleteAllDocument(MongoCollection collection) {

DeleteResult deleteResult = collection.deleteMany(new Document());

long count = deleteResult.getDeletedCount();

return count;

}

// 删除集合

public static void deleteCollection(MongoCollection collection) {

collection.drop();

}

/**

*

* 关闭客户端

*

*

* @author jiangyuechao 2018年4月9日 上午11:23:36

*/

public static void closeDb() {

mongoClient.close();

}

}

简单分析:

1. 使用 ip, port 连接mongodb数据库: static MongoClient mongoClient = new MongoClient(ip, 27017);

2. 连接数据库: database = mongoClient.getDatabase(databaseName);

3. 连接集合: MongoCollection collection = database.getCollection(collectionName);

4. 封装了基本的创建集合, insert ,delete操作.

使用实例

QuickTour例子:

package com.chaochao.mongodb;import static com.mongodb.client.model.Filters.eq;import static com.mongodb.client.model.Filters.gte;import static com.mongodb.client.model.Filters.lt;

import java.util.ArrayList;import java.util.Arrays;import java.util.List;

import org.bson.Document;

import com.mongodb.client.MongoCollection;import com.mongodb.client.model.Filters;import com.mongodb.client.result.DeleteResult;import com.mongodb.client.result.UpdateResult;

public class QuickTour {

static String databaseName = "firstDB";

static String collectionName = "firstCollection1";

static MongoCollection firstCollection;

public static void main(String[] args) {

QuickTour  quickTour = new QuickTour();

quickTour.setUp();//        quickTour.updateMultipleDoc();//        quickTour.deleteMultiple();        quickTour.getAllDocuments();

}

/**

* 连接数据库

*/

public void setUp(){

MongoDBHelper.connect(databaseName);

firstCollection =  MongoDBHelper.getCollection(collectionName);

}

public void getAllDocuments(){

MongoDBHelper.getAllDocuments(firstCollection);

}

public void getDocumentFirst(){

MongoDBHelper.connect(databaseName);

MongoCollection collection = MongoDBHelper.getCollection(collectionName);

String json = MongoDBHelper.getDocumentFirst(collection);

System.out.println(json);

}

/**

* 返回符合匹配条件的第一个doc

* @param collection

*/

public void getDocMatcheFilter(){

Document myDoc = firstCollection.find(eq("y", 2)).first();

System.out.println(myDoc.toJson());

}

public void getAllDocMatcheFilter(){

firstCollection.find(Filters.gt("i", 10)).forEach((Document document)->{System.out.println(document.toJson());});

}

public void updateOneDoc(){

UpdateResult updateResult = firstCollection.updateOne(Filters.eq("i", 12), new Document("$set", new Document("i", 21)));

System.out.println(updateResult.getModifiedCount());

}

public void updateMultipleDoc(){

UpdateResult updateResult = firstCollection.updateMany(lt("i", 100), new Document("$inc", new Document("i", 100)));

System.out.printf("count:%s,insertedId:%s",updateResult.getModifiedCount(),updateResult.getUpsertedId());

System.out.println();

}

public void deleteOne(){

DeleteResult deleteResult = firstCollection.deleteOne(eq("i", 121));

System.out.println(deleteResult.getDeletedCount());

}

public void deleteMultiple(){

DeleteResult deleteResult = firstCollection.deleteMany(gte("i", 100));

System.out.println(deleteResult.getDeletedCount());

}

/**

* 插入一个doc

* @param collection

*/

public void insertDocument(){

Document doc = new Document("name", "MongoDB")

.append("type", "database")

.append("count", 1)

.append("versions", Arrays.asList("v3.2", "v3.0", "v2.6"))

.append("info", new Document("x", 203).append("y", 102));

MongoDBHelper.insertDocument(firstCollection, doc);

}

/**

* 插入多个doc

* @param collection

*/

public void insertMultipleDoc(){

List documents = new ArrayList();

for (int i = 0; i < 100; i++) {

documents.add(new Document("i", i));

}

MongoDBHelper.insertManyDocument(firstCollection, documents);

}

public void countDocs(){

System.out.println(firstCollection.getNamespace().getCollectionName()+"-count:"+firstCollection.count());

}

}

这个例子展示了基本的增删改查操作,直接可以运行..安装mongodb参照官网,挺简单的,java 连接mongodb参照我前边的博客: Java驱动远程连接mongoDB(简明易懂版)

比如我的获取firstCollection1 集合的所有文档 :

{ "_id" : { "$oid" : "5a631d80070db90c43a3477d" }, "x" : 1.0 }

{ "_id" : { "$oid" : "5a631db0070db90c43a3477e" }, "y" : 2.0 }

{ "_id" : 10.0, "calc" : 2.555555000005E12 }

{ "_id" : { "$oid" : "5a66d717ba3c702c14df31b3" }, "name" : "MongoDB", "type" : "database", "count" : 1, "versions" : ["v3.2", "v3.0", "v2.6"], "info" : { "x" : 203, "y" : 102 } }

{ "_id" : { "$oid" : "5a9220cafffeed155066c035" }, "domainID" : { "$numberLong" : "2001" }, "type" : "chao" }

mongodb简单的CRUD还是很好理解的,这里只是一个入门,让你快速熟悉它的操作,跟传统的数据库逻辑还是一致的:

1. 连接数据库

2. 执行操作

3. 关闭连接

那些复杂的查询和更新操作,我们放在后边介绍,比如: 如何匹配数组中的元素? 如何匹配嵌入文档,查询值为 null 的字段 等等..

希望对JAVA有兴趣的朋友有所帮助。了解更多内容,请关注职坐标编程语言JAVA频道!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值