首页 > 数据库 >无涯教程-MongoDB - Java

无涯教程-MongoDB - Java

时间:2023-11-04 12:32:11浏览次数:49  
标签:Java database MongoDB successfully 无涯 client mongodb import com

在本章中,无涯教程将学习如何设置MongoDB JDBC驱动程序。

安装驱动

在Java程序中开始使用MongoDB之前,需要确保在计算机上设置了MongoDB JDBC驱动程序和Java,您可以检查Java教程以在计算机上安装Java。现在,让无涯教程检查如何设置MongoDB JDBC驱动程序。

  • 您需要从路径下载 jar mongo.jar。确保下载它的最新版本。

  • 您需要将mongo.jar包含到您的类路径中。

连接数据库

要连接数据库,您需要指定数据库名称,如果数据库不存在,则MongoDB会自动创建它。

以下是连接到数据库的代码片段-

import com.mongodb.client.MongoDatabase; 
import com.mongodb.MongoClient; 
import com.mongodb.MongoCredential;  

public class ConnectToDB { 
   
   public static void main( String args[] ) {  
      
      //创建 Mongo 客户端
      MongoClient mongo = new MongoClient( "localhost" , 27017 ); 
   
      //创建凭证
      MongoCredential credential; 
      credential = MongoCredential.createCredential("sampleUser", "myDb", 
         "password".toCharArray()); 
      System.out.println("Connected to the database successfully");  
      
      //访问数据库
      MongoDatabase database = mongo.getDatabase("myDb"); 
      System.out.println("Credentials ::"+ credential);     
   } 
}

现在,让无涯教程编译并运行上述程序以创建无涯教程的数据库myDb,如下所示。

$javac ConnectToDB.java 
$java ConnectToDB

执行后,上述程序将为您提供以下输出。

Connected to the database successfully 
Credentials ::MongoCredential{
   mechanism=null, 
   userName='sampleUser', 
   source='myDb', 
   password=<hidden>, 
   mechanismProperties={}
}

创建集合

要创建集合,请使用 com.mongodb.client.MongoDatabase 类的 createCollection()方法。

以下是创建集合的代码片段-

import com.mongodb.client.MongoDatabase; 
import com.mongodb.MongoClient; 
import com.mongodb.MongoCredential;  

public class CreatingCollection { 
   
   public static void main( String args[] ) {  
      
      //创建 Mongo 客户端
      MongoClient mongo = new MongoClient( "localhost" , 27017 ); 
     
      //创建凭证
      MongoCredential credential; 
      credential = MongoCredential.createCredential("sampleUser", "myDb", 
         "password".toCharArray()); 
      System.out.println("Connected to the database successfully");  
      
      //访问数据库
      MongoDatabase database = mongo.getDatabase("myDb");  
      
      //创建集合
      database.createCollection("sampleCollection"); 
      System.out.println("Collection created successfully"); 
   } 
} 

在编译时,上述程序为您提供以下输出-

Connected to the database successfully 
Collection created successfully

获取/选择集合

要从数据库中获取/选择集合,请使用 com.mongodb.client.MongoDatabase 类的 getCollection()方法。

import com.mongodb.client.MongoCollection; 
import com.mongodb.client.MongoDatabase; 

import org.bson.Document; 
import com.mongodb.MongoClient; 
import com.mongodb.MongoCredential;  

public class selectingCollection { 
   
   public static void main( String args[] ) {  
      
      //创建 Mongo 客户端
      MongoClient mongo = new MongoClient( "localhost" , 27017 ); 
     
      //创建凭证
      MongoCredential credential; 
      credential = MongoCredential.createCredential("sampleUser", "myDb", 
         "password".toCharArray()); 
      System.out.println("Connected to the database successfully");  
      
      //访问数据库
      MongoDatabase database = mongo.getDatabase("myDb");  
      
      //创建集合
      System.out.println("Collection created successfully"); 

      //检索集合
      MongoCollection<Document> collection = database.getCollection("myCollection"); 
      System.out.println("Collection myCollection selected successfully"); 
   }
}

在编译时,上述程序为您提供以下输出-

Connected to the database successfully 
Collection created successfully 
Collection myCollection selected successfully

插入数据

要将文档插入MongoDB,请使用 com.mongodb.client.MongoCollection 类的 insert()方法。

import com.mongodb.client.MongoCollection; 
import com.mongodb.client.MongoDatabase; 

import org.bson.Document;  
import com.mongodb.MongoClient; 
import com.mongodb.MongoCredential;  

public class InsertingDocument { 
   
   public static void main( String args[] ) {  
      
      //创建 Mongo 客户端
      MongoClient mongo = new MongoClient( "localhost" , 27017 ); 

      //创建凭证
      MongoCredential credential; 
      credential = MongoCredential.createCredential("sampleUser", "myDb", 
         "password".toCharArray()); 
      System.out.println("Connected to the database successfully");  
      
      //访问数据库
      MongoDatabase database = mongo.getDatabase("myDb"); 

      //检索集合
      MongoCollection<Document> collection = database.getCollection("sampleCollection"); 
      System.out.println("Collection sampleCollection selected successfully");

      Document document = new Document("title", "MongoDB") 
      .append("id", 1)
      .append("description", "database") 
      .append("likes", 100) 
      .append("url", "http://www.learnfk.com/mongodb/") 
      .append("by", "Learnfk point");  
      collection.insertOne(document); 
      System.out.println("Document inserted successfully");     
   } 
}

在编译时,上述程序为您提供以下输出-

Connected to the database successfully 
Collection sampleCollection selected successfully 
Document inserted successfully

检索数据

要从集合中选择所有文档,请使用 com.mongodb.client.MongoCollection 类的 find()方法,此方法返回一个游标,因此您需要迭代此游标。

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

import java.util.Iterator; 
import org.bson.Document; 
import com.mongodb.MongoClient; 
import com.mongodb.MongoCredential;  

public class RetrievingAllDocuments { 
   
   public static void main( String args[] ) {  
      
      //创建 Mongo 客户端
      MongoClient mongo = new MongoClient( "localhost" , 27017 ); 

      //创建凭证
      MongoCredential credential;
      credential = MongoCredential.createCredential("sampleUser", "myDb", 
         "password".toCharArray()); 
      System.out.println("Connected to the database successfully");  
      
      //访问数据库
      MongoDatabase database = mongo.getDatabase("myDb");  
      
      //检索集合
      MongoCollection<Document> collection = database.getCollection("sampleCollection");
      System.out.println("Collection sampleCollection selected successfully"); 

      //获取可迭代对象
      FindIterable<Document> iterDoc = collection.find(); 
      int i = 1; 

      //获取迭代器
      Iterator it = iterDoc.iterator(); 
    
      while (it.hasNext()) {  
         System.out.println(it.next());  
      i++; 
      }
   } 
}

在编译时,上述程序为您提供以下输出-

Document{{
   _id=5967745223993a32646baab8, 
   title=MongoDB, 
   id=1, 
   description=database, 
   likes=100, 
   url=http://www.learnfk.com/mongodb/, by=Learnfk point
}}  
Document{{
   _id=7452239959673a32646baab8, 
   title=RethinkDB, 
   id=2, 
   description=database, 
   likes=200, 
   url=http://www.learnfk.com/rethinkdb/, by=Learnfk point
}}

更新数据

要从集合中更新文档,请使用 com.mongodb.client.MongoCollection 类的 updateOne()方法。

import com.mongodb.client.FindIterable; 
import com.mongodb.client.MongoCollection; 
import com.mongodb.client.MongoDatabase; 
import com.mongodb.client.model.Filters; 
import com.mongodb.client.model.Updates; 

import java.util.Iterator; 
import org.bson.Document;  
import com.mongodb.MongoClient; 
import com.mongodb.MongoCredential;  

public class UpdatingDocuments { 
   
   public static void main( String args[] ) {  
      
      //获取迭代器
      MongoClient mongo = new MongoClient( "localhost" , 27017 ); 
     
      //创建 Mongo 客户端
      MongoCredential credential; 
      credential = MongoCredential.createCredential("sampleUser", "myDb", 
         "password".toCharArray()); 
      System.out.println("Connected to the database successfully");  
      
      //访问数据库
      MongoDatabase database = mongo.getDatabase("myDb"); 

      //检索集合
      MongoCollection<Document> collection = database.getCollection("sampleCollection");
      System.out.println("Collection myCollection selected successfully"); 

      collection.updateOne(Filters.eq("id", 1), Updates.set("likes", 150));       
      System.out.println("Document update successfully...");  
      
      //更新后检索文件
      //获取可迭代对象
      FindIterable<Document> iterDoc = collection.find(); 
      int i = 1; 

      //获取迭代器
      Iterator it = iterDoc.iterator(); 

      while (it.hasNext()) {  
         System.out.println(it.next());  
         i++; 
      }     
   }  
}

在编译时,上述程序为您提供以下输出-

Document update successfully... 
Document {{
   _id=5967745223993a32646baab8, 
   title=MongoDB, 
   id=1, 
   description=database, 
   likes=150, 
   url=http://www.learnfk.com/mongodb/, by=Learnfk point
}}

删除数据

要从集合中删除文档,您需要使用 com.mongodb.client.MongoCollection 类的 deleteOne()方法。

import com.mongodb.client.FindIterable; 
import com.mongodb.client.MongoCollection; 
import com.mongodb.client.MongoDatabase; 
import com.mongodb.client.model.Filters;  

import java.util.Iterator; 
import org.bson.Document; 
import com.mongodb.MongoClient; 
import com.mongodb.MongoCredential;  

public class DeletingDocuments { 
   
   public static void main( String args[] ) {  
   
      //创建 Mongo 客户端
      MongoClient mongo = new MongoClient( "localhost" , 27017 );
      
      //创建凭证
      MongoCredential credential; 
      credential = MongoCredential.createCredential("sampleUser", "myDb", 
         "password".toCharArray()); 
      System.out.println("Connected to the database successfully");  
      
      //访问数据库
      MongoDatabase database = mongo.getDatabase("myDb"); 

      //检索集合
      MongoCollection<Document> collection = database.getCollection("sampleCollection");
      System.out.println("Collection sampleCollection selected successfully"); 

      //删除文件
      collection.deleteOne(Filters.eq("id", 1)); 
      System.out.println("Document deleted successfully...");  
      
      //更新后检索文件
      //获取可迭代对象
      FindIterable<Document> iterDoc = collection.find(); 
      int i = 1; 

      //获取迭代器
      Iterator it = iterDoc.iterator(); 

      while (it.hasNext()) {  
         System.out.println("Inserted Document: "+i);  
         System.out.println(it.next());  
         i++; 
      }       
   } 
}

在编译时,上述程序为您提供以下输出-

Connected to the database successfully 
Collection sampleCollection selected successfully 
Document deleted successfully...

删除集合

要从数据库中删除集合,您需要使用 com.mongodb.client.MongoCollection 类的 drop()方法。

import com.mongodb.client.MongoCollection; 
import com.mongodb.client.MongoDatabase;  

import org.bson.Document;  
import com.mongodb.MongoClient; 
import com.mongodb.MongoCredential;  

public class DropingCollection { 
   
   public static void main( String args[] ) {  

      //创建 Mongo 客户端
      MongoClient mongo = new MongoClient( "localhost" , 27017 ); 

      //创建凭证
      MongoCredential credential; 
      credential = MongoCredential.createCredential("sampleUser", "myDb", 
         "password".toCharArray()); 
      System.out.println("Connected to the database successfully");  
      
      //访问数据库
      MongoDatabase database = mongo.getDatabase("myDb");  
      
      //创建集合
      System.out.println("Collections created successfully"); 

      //检索集合
      MongoCollection<Document> collection = database.getCollection("sampleCollection");

      collection.drop(); 
      System.out.println("Collection dropped successfully");
   } 
}

在编译时,上述程序为您提供以下输出-

Connected to the database successfully 
Collection sampleCollection selected successfully 
Collection dropped successfully

列出所有集合

要列出数据库中的所有集合,您需要使用 com.mongodb.client.MongoDatabase 类的 listCollectionNames()方法。

import com.mongodb.client.MongoDatabase; 
import com.mongodb.MongoClient; 
import com.mongodb.MongoCredential;  

public class ListOfCollection { 
   
   public static void main( String args[] ) {  
      
      //检索集合
      MongoClient mongo = new MongoClient( "localhost" , 27017 ); 

      //创建Mongo客户
      MongoCredential credential; 
      credential = MongoCredential.createCredential("sampleUser", "myDb", 
         "password".toCharArray()); 

      System.out.println("Connected to the database successfully");  
      
      //创建凭据
      MongoDatabase database = mongo.getDatabase("myDb"); 
      System.out.println("Collection created successfully"); 
      for (String name : database.listCollectionNames()) { 
         System.out.println(name); 
      } 
   }
} 

在编译时,上述程序为您提供以下输出-

Connected to the database successfully 
Collection created successfully 
myCollection 
myCollection1 
myCollection5

其余的MongoDB方法 save(),limit(),skip(),sort()等的工作方式与后续教程中说明的相同。

参考链接

https://www.learnfk.com/mongodb/mongodb-java.html

标签:Java,database,MongoDB,successfully,无涯,client,mongodb,import,com
From: https://blog.51cto.com/u_14033984/8181479

相关文章

  • JavaScript内存管理
    在使用垃圾回收的编程环境中,开发者通常无须关心内存管理。不过,JavaScript运行在一个内存管理与垃圾回收都很特殊的环境。分配给浏览器的内存通常比分配给桌面软件的要少很多,分配给移动浏览器的就更少了。这更多出于安全考虑而不是别的,就是为了避免运行大量JavaScript的网页耗......
  • JavaScript如何定义类与函数如何实现继承自Object类实现方法------前端
    HTML页面用于展示<!DOCTYPEhtml><!--这是HTML的注释--><htmllang="en"id="myHtml"> <head> <!--这里不是设置了编码,而是告诉浏览器,用什么编码方式打开文件避免乱码--> <metacharset="UTF-8"> <metaname="viewport"......
  • JavaSE day03【多态、内部类、 常用API】测评题
    选择题题目1(多选):下列关于多态的前提描述正确的是()选项:​ A.继承/实现关系​ B.子父类存在同名成员变量​ C.方法重写​ D.父类的引用指向子类的对象题目2(单选):下列关于多态成员访问的特点错误的是()选项:​ A.构造方法和继承一样,子类通过super()......
  • JavaScript Array对象(属性、方法) 留言板案例
    一、创建数组对象的方式vararrOb=newArray(值,........)vararrOb=Array(值,.......)vararrOb=[值,.........]vararrOb=newArray(n);arrOb[0]=值1;arrOb[1]=值2;二、数组的属性length   //数组中元素的数目vararr=['云南','九寨沟','拉萨','西双版纳','......
  • java实现大文件的分片上传与下载
    1.1项目背景对于超大文件上传我们可能遇到以下问题•大文件直接上传,占用过多内存,可能导致内存溢出甚至系统崩溃•受网络环境影响,可能导致传输中断,只能重新传输•传输时间长,用户无法知道传输进度,用户体验不佳1.2项目目标对于上述问题,我们需要对文件做分片传输。分片传输就是......
  • JavaSE day03-多态 ,内部类,常用API
    JavaSEday03-多态,内部类,常用API多态内部类常用API1多态1.1面向对象三大特征?封装,继承,多态1.2什么是多态?一个对象在不同时刻体现出来的不同形态举例:一只猫对象我们可以说猫就是猫:Catcat=newCat();我们也可以说猫是动物:Animal......
  • 205-java 从资源目录获取txt内容
    java从资源目录获取txt内容publicStringgetCookie(){ClassPathResourceclassPathResource=newClassPathResource("cookie.txt");Stringck=FileUtil.readString(classPathResource.getAbsolutePath(),CharsetUtil.CHARSET_UTF_8);ret......
  • 无涯教程-MongoDB - 投影语句
    在MongoDB中,投影(Projection)意味着仅选择必要的数据,而不是选择全部数据,如果文档有5个字段,而只需要显示3个字段,则从中选择3个字段。find()方法MongoDB的find()方法在MongoDB查询文档中进行了解释,该方法接受第二个可选参数是您要检索的字段列表,在MongoDB中,执行find()方法时......
  • 无涯教程-MongoDB - 限制查询
    在本章中,无涯教程将学习如何使用MongoDB限制记录。要限制MongoDB中的记录,您需要使用limit()方法,该方法接受一个数字类型参数,该参数是您要显示的文档数。Limiting-语法limit()方法的基本语法如下->db.COLLECTION_NAME.find().limit(NUMBER)Limiting-示例考虑收集myyco......
  • java练习:热部署
          ......