mongodb--使用Java操作MongoDB

Posted 洛小依ovo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mongodb--使用Java操作MongoDB相关的知识,希望对你有一定的参考价值。

一、环境的准备

1、MongoDB已经安装完成

2、java环境准备

(1)jdk:oracle官网:https://www.oracle.com/java/technologies/downloads/

(2)开发工具:

  eclipse官网:https://www.eclipse.org/

  idea官网:https://www.jetbrains.com.cn/idea/

3、选择MongoDB JDBC驱动

https://mongodb.github.io/mongo-java-driver/(可以下载后放在电脑任意位置,只需要在java工程中导入即可)

mongo-java-driver-3.12.1.jar

二、Java代码实现

1、连接数据库

// 连接本地数据库
MongoClient conn=new MongoClient("127.0.0.1");
// show dbs查看所有的数据库
for(String name:conn.listDatabaseNames())
    System.out.println("dbName:"+name);

2、获取数据库

// getDatabase == use database
// 获取名字为dbName的数据库
MongoDatabase db=conn.getDatabase("dbName");
// 查看dbName数据库的所有集合
for(String nameColl:db.listCollectionNames())
    System.out.println("collectionName:"+nameColl);

 3、创建集合

// 创建集合=db.createCollection()
// 创建一个名字为collectionName的集合
db.createCollection("collectionName");

 4、删除集合

// 删除集合=db.collectionname.drop
// 先获取到这个集合collectionName,然后删除
MongoCollection<Document> collection = db.getCollection("collectionName");
collection.drop();

 5、获取集合(获取的这个集合,这个集合中放着文档<document>)

// 使用com.mongodb.client.MongoDatabase类的getCollection()方法来获取一个集合的文档=db.collectionName
// 返回值:com.mongodb.client.MongoCollection类
// 放的就是一条一条的集合这个document这个类
MongoCollection<Document> collection = mongoDatabase.getCollection("collectionName");
// 查看文档数
collection.count();

6、插入文档

 (1)插入一条文档

// 插入一个文档=insertOne:collection.insertOne(doc);
// 新建一个文档doc
Document doc = new Document();
// 使用put放入键值对
doc.put("name", "zs");
doc.put("age", 25);
// book是一个数组
List<String> books=new ArrayList<String>();
books.add("C");
books.add("Java");
books.add("JS");
doc.put("books", books);
// 插入文档
collection.insertOne(doc);

  (2)插入多个文档

// 插入多个文档=insertMany:collection.insertMany(documents);
// 创建两个文档
Document document1 = new Document("name","张三").append( "age",20);
Document document2 = new Document( "name", "李四").append("age", 21);
// 把这两个文档放入documents数组中
List<Document> documents = new ArrayList<Document>();
documents.add(document1);
documents.add(document2);
// 插入多个文档
collection.insertMany(documents);

 7、删除文档

// 先创建一个文档
Document docDelete=new Document();
// 在里面添加想要删除的文档的条件
docDelete.append("name", "张三");
collection.deleteMany(docDelete);

8、更新文档

// 先创建一个文档
Document docUpdate=new Document();
// 添加要更新的
docUpdate.append("$set",new Document("email","123456@qq.com"));
// Filters常常用来过滤条件 Filters.eq用于指定等于条件
collection.updateOne(Filters.eq("name","李四"), docUpdate);
collection.updateMany(Filters.eq("name","李四"), docUpdate);
// updateOne更新一条文档;updateMany更新多条文档

 9、查询文档

 (1)普通查询

// FindIterable查询之后返回文档的类
FindIterable<Document> findIterable = collection.find();
// 使用for each打印出每一条文档
for(Document document:findIterable)
    System.out.println(document);

 (2)按条件查询

// 使用Filters过滤条件
FindIterable<Document> findIterable = collection.find(Filters.eq("name","李四"));
// 使用for each打印出符合条件的文档
for(Document document:findIterable)
    System.out.println(document);

 (3)多条件查询

// 使用Filters.add添加多个条件
// Bson类型
Bson filter=Filters.and(Filters.eq("name","李四"),Filters.eq("age", 25));
FindIterable<Document> findIterable = collection.find(filter);
for(Document document:findIterable)
    System.out.println(document);

10、游标(使用游标输出文档)

// 先查询文档或者按条件查询
FindIterable<Document> findIterable = collection.find();
// 使用游标
MongoCursor<Document> mongoCursor = findIterable.iterator();
// hasNext()就是判断是否还有下一个 有下一个继续往下走
while(mongoCursor.hasNext())
    Document doc1=mongoCursor.next();
    // name age books  都是字段
    System.out.println(doc1.get("name")
                       +"》" +doc1.get("age")
                       +"》" +doc1.get("books"));
    // System.out.println(mongoCursor.next());

 

如何用java操作mongodb

public class MongoDBJDBC
public static void main(String[] args)
try
// 实例化Mongo对象,连接27017端口
Mongo mongo = new Mongo("localhost", 27017);
// 连接名为yourdb的数据库,假如数据库不存在的话,mongodb会自动建立
DB db = mongo.getDB("test");
// Get collection from MongoDB, database named "yourDB"
// 从Mongodb中获得名为yourColleection的数据集合,如果该数据集合不存在,Mongodb会为其新建立
DBCollection collection = db.getCollection("test1");
// 使用BasicDBObject对象创建一个mongodb的document,并给予赋值。
BasicDBObject document = new BasicDBObject();
//document.put("id", 1001);
//document.put("msg", "hello world mongoDB in Java");
// 将新建立的document保存到collection中去
//collection.insert(document);
// 创建要查询的document
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.put("name", "chen");
// 使用collection的find方法查找document
DBCursor cursor = collection.find(searchQuery);
// 循环输出结果
while (cursor.hasNext())
System.out.println(cursor.next());

System.out.println("Hello World");
catch (UnknownHostException e)
e.printStackTrace();
catch (MongoException e)
e.printStackTrace();


参考技术A import org.bson.Document;

import com.mongodb.MongoClient;
import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoCursor;
import com.mongodb.client.MongoDatabase;

public class mongo

/**
* @param args
*/
@SuppressWarnings("rawtypes")
public static void main(String[] args)
// TODO Auto-generated method stub

//连接mongoDB
MongoClient mongoClient = new MongoClient("localhost", 27017);
//获取数据库
MongoDatabase db = mongoClient.getDatabase("db");
//获取数据库中的集合
MongoCollection users = db.getCollection("db");
//查询结果
FindIterable f = users.find();
MongoCursor cur = f.iterator();
//取出结果
while(cur.hasNext())
Document doc = (Document) cur.next();
System.out.println("---------------------------------------------------------------------------------");
System.out.println(doc.toJson());
System.out.println(doc.get("_id"));
doc.clear();

cur.close();
mongoClient.close();


以上是关于mongodb--使用Java操作MongoDB的主要内容,如果未能解决你的问题,请参考以下文章

mongodb--使用Java操作MongoDB

java操作mongodb之后需要断开连接么

如何用java操作mongodb

使用Java操作MongoDB

使用java操作MongoDB

java怎么导出mongodb数据