MongoDB_Java

编程入门 行业动态 更新时间:2024-10-10 21:30:09

MongoDB_Java

MongoDB_Java

MongoDB Java

文章目录

  • MongoDB Java
    • 1.环境配置
    • 2.连接数据库
    • 3.创建集合
    • 4.获取集合
    • 5.插入文档
    • 6.检索所有文档
    • 7.更新文档
    • 8.删除第一个文档

1.环境配置

导入 mongo-java-driver-3.2.2.jar包作为MongoDB JDBC驱动

下载地址为:jar包下载地址

2.连接数据库

连接数据库,你需要指定数据库名称,如果指定的数据库不存在,mongo会自动创建数据库。

import com.mongodb.MongoClient;
import com.mongodb.client.MongoDatabase;public class MongoDBJDBC{public static void main( String args[] ){try{   // 连接到 mongodb 服务MongoClient mongoClient = new MongoClient( "localhost" , 27017 );// 连接到数据库MongoDatabase mongoDatabase = mongoClient.getDatabase("mycol");  System.out.println("Connect to database successfully");}catch(Exception e){System.err.println( e.getClass().getName() + ": " + e.getMessage() );}}
}

编译运行数据库 mycol

$ javac -cp .:mongo-java-driver-3.2.2.jar MongoDBJDBC.java
$ java -cp .:mongo-java-driver-3.2.2.jar MongoDBJDBC
Connect to database successfully
Authentication: true

Mongo 需要验证用户名及密码的话

import java.util.ArrayList;  
import java.util.List;  
import com.mongodb.MongoClient;  
import com.mongodb.MongoCredential;  
import com.mongodb.ServerAddress;  
import com.mongodb.client.MongoDatabase;  public class MongoDBJDBC {  public static void main(String[] args){  try {  //连接到MongoDB服务 如果是远程连接可以替换“localhost”为服务器所在IP地址  //ServerAddress()两个参数分别为 服务器地址 和 端口  ServerAddress serverAddress = new ServerAddress("localhost",27017);  List<ServerAddress> addrs = new ArrayList<ServerAddress>();  addrs.add(serverAddress);  //MongoCredential.createScramSha1Credential()三个参数分别为 用户名 数据库名称 密码  MongoCredential credential = MongoCredential.createScramSha1Credential("username", "databaseName", "password".toCharArray());  List<MongoCredential> credentials = new ArrayList<MongoCredential>();  credentials.add(credential);  //通过连接认证获取MongoDB连接  MongoClient mongoClient = new MongoClient(addrs,credentials);  //连接到数据库  MongoDatabase mongoDatabase = mongoClient.getDatabase("databaseName");  System.out.println("Connect to database successfully");  } catch (Exception e) {  System.err.println( e.getClass().getName() + ": " + e.getMessage() );  }  }  
} 

3.创建集合

createCollection()

import com.mongodb.MongoClient;
import com.mongodb.client.MongoDatabase;public class MongoDBJDBC{public static void main( String args[] ){try{   // 连接到 mongodb 服务MongoClient mongoClient = new MongoClient( "localhost" , 27017 );// 连接到数据库MongoDatabase mongoDatabase = mongoClient.getDatabase("mycol");  System.out.println("Connect to database successfully");mongoDatabase.createCollection("test");System.out.println("集合创建成功");}catch(Exception e){System.err.println( e.getClass().getName() + ": " + e.getMessage() );}}
}

编译运行以上程序,输出结果如下:

Connect to database successfully
集合创建成功

4.获取集合

getCollection()

import org.bson.Document;
import com.mongodb.MongoClient;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;public class MongoDBJDBC{public static void main( String args[] ){try{   // 连接到 mongodb 服务MongoClient mongoClient = new MongoClient( "localhost" , 27017 );// 连接到数据库MongoDatabase mongoDatabase = mongoClient.getDatabase("mycol");  System.out.println("Connect to database successfully");MongoCollection<Document> collection = mongoDatabase.getCollection("test");System.out.println("集合 test 选择成功");}catch(Exception e){System.err.println( e.getClass().getName() + ": " + e.getMessage() );}}
}

编译运行以上程序,输出结果如下:

Connect to database successfully
集合 test 选择成功

5.插入文档

**insertMany() **

import java.util.ArrayList;
import java.util.List;
import org.bson.Document;import com.mongodb.MongoClient;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;public class MongoDBJDBC{public static void main( String args[] ){try{   // 连接到 mongodb 服务MongoClient mongoClient = new MongoClient( "localhost" , 27017 );// 连接到数据库MongoDatabase mongoDatabase = mongoClient.getDatabase("mycol");  System.out.println("Connect to database successfully");MongoCollection<Document> collection = mongoDatabase.getCollection("test");System.out.println("集合 test 选择成功");//插入文档  /** * 1. 创建文档 org.bson.Document 参数为key-value的格式 * 2. 创建文档集合List<Document> * 3. 将文档集合插入数据库集合中 mongoCollection.insertMany(List<Document>) 插入单个文档可以用 mongoCollection.insertOne(Document) * */Document document = new Document("title", "MongoDB").  append("description", "database").  append("likes", 100).  append("by", "Fly");  List<Document> documents = new ArrayList<Document>();  documents.add(document);  collection.insertMany(documents);  System.out.println("文档插入成功");  }catch(Exception e){System.err.println( e.getClass().getName() + ": " + e.getMessage() );}}
}

编译运行以上程序,输出结果如下:

Connect to database successfully
集合 test 选择成功
文档插入成功

6.检索所有文档

find()
此方法返回一个游标,所以你需要遍历这个游标

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 MongoDBJDBC{public static void main( String args[] ){try{   // 连接到 mongodb 服务MongoClient mongoClient = new MongoClient( "localhost" , 27017 );// 连接到数据库MongoDatabase mongoDatabase = mongoClient.getDatabase("mycol");  System.out.println("Connect to database successfully");MongoCollection<Document> collection = mongoDatabase.getCollection("test");System.out.println("集合 test 选择成功");//检索所有文档  /** * 1. 获取迭代器FindIterable<Document> * 2. 获取游标MongoCursor<Document> * 3. 通过游标遍历检索出的文档集合 * */  FindIterable<Document> findIterable = collection.find();  MongoCursor<Document> mongoCursor = findIterable.iterator();  while(mongoCursor.hasNext()){  System.out.println(mongoCursor.next());  }  }catch(Exception e){System.err.println( e.getClass().getName() + ": " + e.getMessage() );}}
}

编译运行以上程序,输出结果如下:

Connect to database successfully
集合 test 选择成功
Document{{_id=56e65fb1fd57a86304fe2692, title=MongoDB, description=database, likes=100, by=Fly}}

7.更新文档

**updateMany() **

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;
import com.mongodb.client.model.Filters;public class MongoDBJDBC{public static void main( String args[] ){try{   // 连接到 mongodb 服务MongoClient mongoClient = new MongoClient( "localhost" , 27017 );// 连接到数据库MongoDatabase mongoDatabase = mongoClient.getDatabase("mycol");  System.out.println("Connect to database successfully");MongoCollection<Document> collection = mongoDatabase.getCollection("test");System.out.println("集合 test 选择成功");//更新文档   将文档中likes=100的文档修改为likes=200   collection.updateMany(Filters.eq("likes", 100), new Document("$set",new Document("likes",200)));  //检索查看结果  FindIterable<Document> findIterable = collection.find();  MongoCursor<Document> mongoCursor = findIterable.iterator();  while(mongoCursor.hasNext()){  System.out.println(mongoCursor.next());  }  }catch(Exception e){System.err.println( e.getClass().getName() + ": " + e.getMessage() );}}
}

编译运行以上程序,输出结果如下:

Connect to database successfully
集合 test 选择成功
Document{{_id=56e65fb1fd57a86304fe2692, title=MongoDB, description=database, likes=200, by=Fly}}

8.删除第一个文档

findall() -> remove

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;
import com.mongodb.client.model.Filters;public class MongoDBJDBC{public static void main( String args[] ){try{   // 连接到 mongodb 服务MongoClient mongoClient = new MongoClient( "localhost" , 27017 );// 连接到数据库MongoDatabase mongoDatabase = mongoClient.getDatabase("mycol");  System.out.println("Connect to database successfully");MongoCollection<Document> collection = mongoDatabase.getCollection("test");System.out.println("集合 test 选择成功");//删除符合条件的第一个文档  collection.deleteOne(Filters.eq("likes", 200));  //删除所有符合条件的文档  collection.deleteMany (Filters.eq("likes", 200));  //检索查看结果  FindIterable<Document> findIterable = collection.find();  MongoCursor<Document> mongoCursor = findIterable.iterator();  while(mongoCursor.hasNext()){  System.out.println(mongoCursor.next());  }  }catch(Exception e){System.err.println( e.getClass().getName() + ": " + e.getMessage() );}}
}

编译运行以上程序,输出结果如下:

Connect to database successfully
集合 test 选择成功

更多推荐

MongoDB_Java

本文发布于:2023-07-28 19:16:35,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1284841.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:MongoDB_Java

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!