Latest web development tutorials
×

MongoDB курс

MongoDB курс NoSQL Краткое введение MongoDB Краткое введение Window устанавливать MongoDB Linux устанавливать MongoDB MongoDB Интерпретация Концепции MongoDB подключение MongoDB Создание базы данных MongoDB Удалить базу данных MongoDB Вставить документ MongoDB Обновление документации MongoDB Удаление документов MongoDB документ Запрос MongoDB Условный оператор MongoDB $type операторы MongoDB Limit & Skip MongoDB последовательность MongoDB индекс MongoDB агрегирование MongoDB копия MongoDB Ломтики MongoDB Резервное копирование и восстановление MongoDB монитор MongoDB Java MongoDB PHP распространение MongoDB PHP MongoDB PHP7

MongoDB Расширенный учебник

MongoDB отношения MongoDB ссылки на базы данных MongoDB Индекс покрытия запроса MongoDB анализ запросов MongoDB атомарные операции MongoDB Расширенный индексации MongoDB ограничения индекса MongoDB ObjectId MongoDB Map Reduce MongoDB Полнотекстовый поиск MongoDB Регулярные выражения MongoDB Инструменты управления MongoDB GridFS MongoDB Фиксированный набор MongoDB Автоматический рост

MongoDB Java

Конфигурация окружающей среды

Если вы хотите программировать на Java с помощью MongoDB, вам необходимо убедиться, что вы установили среду Java и драйвер MongoDB JDBC.

Примеры в этом разделе, когда Монго 3.x или более поздней версии.

Вы можете ссылаться на этот сайт в Java учебник , чтобы установить программу Java. Теперь давайте проверим установлен драйвер MongoDB JDBC.

  • Сначала необходимо загрузить пакет банку Монго, скачать адрес: http://mongodb.github.io/mongo-java-driver/ , убедитесь , чтобы загрузить последнюю версию.

  • Вам нужно будет Монго-Java-драйвер-3.2.2.jar (найти подходящую версию) включен в вашем пути к классам. ,
  • Внутренние MongoDB-драйвер баночка Скачать: http://central.maven.org/maven2/org/mongodb/mongo-java-driver/

Подключение к базе данных

Подключение к базе данных, необходимо указать имя базы данных, если указанная база данных не существует, база данных Монго будет создана автоматически.

Подключение к базе данных Java кода выглядит следующим образом:

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() );
     }
   }
}

Теперь, давайте скомпилировать и запустить программу и подключиться к базе данных теста.

Вы можете изменить путь к драйверу MongoDB JDBC в соответствии с вашей реальной среде.

Этот пример начнет MongoDB JDBC пакета Монго-Java-драйвер-3.2.2.jar в локальном каталоге:

$ 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

Этот пример Монго базы данных, не требуя имени пользователя и пароля. Если Монго нужно проверить имя пользователя и пароль, вы можете использовать следующий код:

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() );  
        }  
    }  
} 

Создать коллекцию

Мы можем использовать com.mongodb.client.MongoDatabase класс 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
集合创建成功

Получает коллекцию

Мы можем использовать метод getCollection (), чтобы получить коллекцию класса com.mongodb.client.MongoDatabase

Следующий фрагмент кода:

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 选择成功

Вставить документ

Мы можем использовать com.mongodb.client.MongoCollection класс 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 选择成功
文档插入成功

Получить все документы

Мы можем использовать метод com.mongodb.client.MongoCollection класс находка (), чтобы получить коллекцию всех документов.

Этот метод возвращает курсор, так что вам нужно пройти курсор.

Следующий фрагмент кода:

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}}

Обновление документации

Вы можете использовать метод com.mongodb.client.MongoCollection класс 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}}

Удалите первый документ

Чтобы удалить документ в коллекции первых, сначала нужно использовать метод класса com.mongodb.DBCollection findOne (), чтобы получить первый документ, а затем использовать метод удалить удалить.

Следующий фрагмент кода:

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 选择成功

Дополнительные операции, см: http://mongodb.github.io/mongo-java-driver/3.0/driver/getting-started/quick-tour/

Справочный документ: HTTP: //blog.csdn.net/ererfei/article/details/50857103