开发手册 欢迎您!
软件开发者资料库

MongoDB - Java

MongoDB Java - 从简单和简单的步骤学习MongoDB,从基本到高级概念,包括什么是mongoD?,为什么以及在哪里使用它?,环境设置,创建集合,文档。

在本章中,我们将学习如何设置MongoDB JDBC驱动程序.

安装

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

  • 您需要从路径

  • 您需要将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[] ) {              // Creating a Mongo client       MongoClient mongo = new MongoClient( "localhost" , 27017 );          // Creating Credentials       MongoCredential credential;       credential = MongoCredential.createCredential("sampleUser", "myDb",          "password".toCharArray());       System.out.println("Connected to the database successfully");              // Accessing the database       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 = ,    mechanismProperties = {}}


创建集合

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

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

import com.mongodb.client.MongoDatabase; import com.mongodb.MongoClient; import com.mongodb.MongoCredential;  public class CreatingCollection {       public static void main( String args[] ) {              // Creating a Mongo client       MongoClient mongo = new MongoClient( "localhost" , 27017 );            // Creating Credentials       MongoCredential credential;       credential = MongoCredential.createCredential("sampleUser", "myDb",          "password".toCharArray());       System.out.println("Connected to the database successfully");              //Accessing the database       MongoDatabase database = mongo.getDatabase("myDb");              //Creating a collection       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[] ) {              // Creating a Mongo client       MongoClient mongo = new MongoClient( "localhost" , 27017 );            // Creating Credentials       MongoCredential credential;       credential = MongoCredential.createCredential("sampleUser", "myDb",          "password".toCharArray());       System.out.println("Connected to the database successfully");              // Accessing the database       MongoDatabase database = mongo.getDatabase("myDb");              // Creating a collection       System.out.println("Collection created successfully");       // Retieving a collection      MongoCollection 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[] ) {              // Creating a Mongo client       MongoClient mongo = new MongoClient( "localhost" , 27017 );       // Creating Credentials       MongoCredential credential;       credential = MongoCredential.createCredential("sampleUser", "myDb",          "password".toCharArray());       System.out.println("Connected to the database successfully");              // Accessing the database       MongoDatabase database = mongo.getDatabase("myDb");       // Retrieving a collection      MongoCollection 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.it1352.com/")       .append("by", "tutorials 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[] ) {              // Creating a Mongo client       MongoClient mongo = new MongoClient( "localhost" , 27017 );       // Creating Credentials       MongoCredential credential;      credential = MongoCredential.createCredential("sampleUser", "myDb",          "password".toCharArray());       System.out.println("Connected to the database successfully");              // Accessing the database       MongoDatabase database = mongo.getDatabase("myDb");              // Retrieving a collection       MongoCollection collection = database.getCollection("sampleCollection");      System.out.println("Collection sampleCollection selected successfully");       // Getting the iterable object       FindIterable iterDoc = collection.find();       int i = 1;       // Getting the iterator       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.it1352.com/OnLineTutorial/Index, by=it1352}}  Document{{   _id = 7452239959673a32646baab8,    title = RethinkDB,    id = 2,    description = database,    likes = 200,    url = http://www.it1352.com/OnLineTools/Index, by=it1352}}


更新文件

更新使用 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[] ) {              // Creating a Mongo client       MongoClient mongo = new MongoClient( "localhost" , 27017 );            // Creating Credentials       MongoCredential credential;       credential = MongoCredential.createCredential("sampleUser", "myDb",          "password".toCharArray());       System.out.println("Connected to the database successfully");              // Accessing the database       MongoDatabase database = mongo.getDatabase("myDb");       // Retrieving a collection       MongoCollection 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...");              // Retrieving the documents after updation       // Getting the iterable object      FindIterable iterDoc = collection.find();       int i = 1;       // Getting the iterator       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.it1352.com/OnLineTutorial/Index, by =it1352}}


删除文档

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

以下是删除文件的程序 :

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[] ) {           // Creating a Mongo client       MongoClient mongo = new MongoClient( "localhost" , 27017 );            // Creating Credentials       MongoCredential credential;       credential = MongoCredential.createCredential("sampleUser", "myDb",          "password".toCharArray());       System.out.println("Connected to the database successfully");              // Accessing the database       MongoDatabase database = mongo.getDatabase("myDb");       // Retrieving a collection      MongoCollection collection = database.getCollection("sampleCollection");      System.out.println("Collection sampleCollection selected successfully");       // Deleting the documents       collection.deleteOne(Filters.eq("id", 1));       System.out.println("Document deleted successfully...");              // Retrieving the documents after updation       // Getting the iterable object       FindIterable iterDoc = collection.find();       int i = 1;       // Getting the iterator       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...


删除集合

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

以下是删除集合的程序 :

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[] ) {        // Creating a Mongo client       MongoClient mongo = new MongoClient( "localhost" , 27017 );       // Creating Credentials       MongoCredential credential;       credential = MongoCredential.createCredential("sampleUser", "myDb",          "password".toCharArray());       System.out.println("Connected to the database successfully");              // Accessing the database       MongoDatabase database = mongo.getDatabase("myDb");              // Creating a collection       System.out.println("Collections created successfully");       // Retieving a collection      MongoCollection collection = database.getCollection("sampleCollection");      // Dropping a Collection       collection.drop();       System.out.println("Collection dropped successfully");   } }


编译时,上述程序会给你以下结果 :

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


列出所有集合

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

以下是列出数据库所有集合的程序 :

import com.mongodb.client.MongoDatabase; import com.mongodb.MongoClient; import com.mongodb.MongoCredential;  public class ListOfCollection {       public static void main( String args[] ) {              // Creating a Mongo client       MongoClient mongo = new MongoClient( "localhost" , 27017 );       // Creating Credentials       MongoCredential credential;       credential = MongoCredential.createCredential("sampleUser", "myDb",          "password".toCharArray());       System.out.println("Connected to the database successfully");              // Accessing the database       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()等,与后续教程中的说明相同.