English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
В этой главе мы рассмотрим, как настроить MongoDB CLIENT.
Перед тем как начать использовать MongoDB в Java-программе, необходимо убедиться, что на компьютере установлены MongoDB CLIENT и Java. Вы можете установить Java, следуя руководству по Java. Теперь давайте проверим, как настроить MongoDB CLIENT.
Вам нужно загрузить jar mongodb-driver-3.11.2.jar и его зависимость mongodb-driver-core-3.11.2.jar.
. Убедитесь, что у вас естьlatest версии этих jar файлов.
Вам нужно включить загруженные 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("Успешно подключено к базе данных"); // Доступ к базе данных MongoDatabase database = mongo.getDatabase("myDb"); System.out.println("Credentials ::"+ credential); } }
Теперь давайте скомпилируем и запустим этот программный код, чтобы создать базу данных myDb, как показано ниже.
$javac ConnectToDB.java $java ConnectToDB
После выполнения программы вы получите следующий вывод.
Успешно подключено к базе данных Credentials ::MongoCredential{ mechanism = null, userName = 'sampleUser', source = 'myDb', password = <скрыто>, mechanismProperties = {}}
Для создания коллекции используйте метод createCollection () класса com.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[]) { // 创建一个Mongo客户端 MongoClient mongo = new MongoClient("localhost", 27017); // 创建凭证 MongoCredential credential; credential = MongoCredential.createCredential("sampleUser", "myDb", "password".toCharArray()); System.out.println("Успешно подключено к базе данных"); //Доступ к базе данных MongoDatabase database = mongo.getDatabase("myDb"); //Создание коллекции database.createCollection("sampleCollection"); System.out.println("Успешно создана коллекция"); } }
При компиляции,上述程序为您提供以下结果-
Успешно подключено к базе данных Успешно создана коллекция
Для получения/выбора коллекции из базы данных необходимо использовать метод getCollection () класса com.mongodb.client.MongoDatabase.
Ниже приведен пример программы для получения/выбора коллекции
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("Успешно подключено к базе данных"); // Доступ к базе данных MongoDatabase database = mongo.getDatabase("myDb"); // 创建集合 System.out.println("Успешно создана коллекция"); // 检索集合 MongoCollection<Document> collection = database.getCollection("myCollection"); System.out.println("Успешно выбрано множество myCollection"); } }
При компиляции,上述程序为您提供以下结果-
Успешно подключено к базе данных Успешно создана коллекция Успешно выбрана коллекция myCollection
Для вставки документа в MongoDB необходимо использовать метод insert () класса com.MongoDB.client.MongoCollection.
以下是插入文档的代码片段-
import com.mongodb.client.MongoCollection; import com.mongodb.client.MongoDatabase; import org.bson.Document; import com.mongodb.MongoClient; public class InsertingDocument { public static void main(String args[]) { // 创建一个Mongo客户端 MongoClient mongo = new MongoClient("localhost", 27017); // Доступ к базе данных MongoDatabase database = mongo.getDatabase("myDb"); // 创建集合 database.createCollection("sampleCollection"); System.out.println("Успешно создана коллекция"); // 检索集合 MongoCollection<Document> collection = database.getCollection("sampleCollection"); System.out.println("Успешно выбрано множество sampleCollection"); Document document = new Document("title", "MongoDB") .append("description", "database") .append("likes", 100) .append("url", "http://ru.oldtoolbag.com/mongodb/") .append("by", "oldtoolbag.com"); //将文档插入集合中 collection.insertOne(document); System.out.println("文档插入成功"); }
При компиляции,上述程序为您提供以下结果-
已成功连接到数据库 已成功选择集合sampleCollection 文档插入成功
要从集合中选择所有文档,请使用com.mongodb.client.MongoCollection
的class
。此方法返回一个游标,因此您需要迭代此游标。
方法find()
以下是选择所有文档的程序-
import com.mongodb.client.FindIterable; import com.mongodb.client.MongoCollection; import com.mongodb.client.MongoDatabase; import java.util.ArrayList; import java.util.Iterator; import java.util.List; 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("Успешно подключено к базе данных"); // Доступ к базе данных MongoDatabase database = mongo.getDatabase("myDb"); // 检索集合 MongoCollection<Document> collection = database.getCollection("sampleCollection"); System.out.println("Успешно выбрано множество sampleCollection"); Document document1 = new Document("title", "MongoDB") .append("description", "database") .append("likes", 100) .append("url", "http://ru.oldtoolbag.com/mongodb/") .append("by", "oldtoolbag.com"); Document document2 = new Document("title", "RethinkDB") .append("description", "database") .append("likes", 200) .append("url", "http://ru.oldtoolbag.com/rethinkdb/") .append("by", "oldtoolbag.com"); List<Document> list = new ArrayList<Document>(); list.add(document1); list.add(document2); collection.insertMany(list); // Получение объекты, которые можно итерировать FindIterable<Document> iterDoc = collection.find(); int i = 1; // Получение итератора Iterator it = iterDoc.iterator(); while (it.hasNext()) { System.out.println(it.next()); i++; } } }
При компиляции,上述程序为您提供以下结果-
Успешно подключено к базе данных Успешно выбрано множество sampleCollection{{_id=5dce4e9ff68a9c2449e197b2, title=MongoDB, description=database, likes=100, url=http://ru.oldtoolbag.com/mongodb/, by=oldtoolbag.com}}Document{{_id=5dce4e9ff68a9c2449e197b3, title=RethinkDB, description=database, likes=200, url=http://ru.oldtoolbag.com/rethinkdb/, by=oldtoolbag.com}}
Чтобы обновить документ в集合е, пожалуйста, используйтекласс 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[]) { // 创建一个Mongo客户端 MongoClient mongo = new MongoClient("localhost", 27017); // 创建凭证 MongoCredential credential; credential = MongoCredential.createCredential("sampleUser", "myDb", "password".toCharArray()); System.out.println("Успешно подключено к базе данных"); // Доступ к базе данных MongoDatabase database = mongo.getDatabase("myDb"); // 检索集合 MongoCollection<Document> collection = database.getCollection("sampleCollection"); System.out.println("Успешно выбрано множество myCollection"); collection.updateOne(Filters.eq("title", 1), Updates.set("likes", 150)); System.out.println("Документ успешно обновлен..."); // Поиск документов после обновления // Получение объекты, которые можно итерировать FindIterable<Document> iterDoc = collection.find(); int i = 1; // Получение итератора Iterator it = iterDoc.iterator(); while (it.hasNext()) { System.out.println(it.next()); i++; } } }
При компиляции,上述程序为您提供以下结果-
Успешно подключено к базе данных Успешно выбрано множество myCollection Успешно обновлен документ...Document{{_id=5dce4e9ff68a9c2449e197b2, title=MongoDB, description=database, likes=100, url=http://ru.oldtoolbag.com/mongodb/, by=oldtoolbag.com}}Document{{_id=5dce4e9ff68a9c2449e197b3, title=RethinkDB, description=database, likes=200, url=http://ru.oldtoolbag.com/rethinkdb/, by=oldtoolbag.com}}
Чтобы удалить документ из集合а, вам нужно использовать класс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("Успешно подключено к базе данных"); // Доступ к базе данных MongoDatabase database = mongo.getDatabase("myDb"); // 检索集合 MongoCollection<Document> collection = database.getCollection("sampleCollection"); System.out.println("Успешно выбрано множество sampleCollection"); // Удаление файла collection.deleteOne(Filters.eq("title", "MongoDB")); System.out.println("Успешно удален документ..."); // Поиск документов после обновления // Получение объекты, которые можно итерировать FindIterable<Document> iterDoc = collection.find(); int i = 1; // Получение итератора Iterator it = iterDoc.iterator(); while (it.hasNext()) { System.out.println(it.next()); i++; } } }
При компиляции,上述程序为您提供以下结果-
Успешно подключено к базе данных Успешно выбрано множество sampleCollection Успешно удален документ...Document{{_id=5dce4e9ff68a9c2449e197b3, title=RethinkDB, description=database, likes=200, url=http://ru.oldtoolbag.com/rethinkdb/, by=oldtoolbag.com}}
要从数据库中删除集合,您需要使用类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("Успешно подключено к базе данных"); // Доступ к базе данных MongoDatabase database = mongo.getDatabase("myDb"); // 创建集合 System.out.println("Успешно создана коллекция"); // 检索集合 MongoCollection<Document> collection = database.getCollection("sampleCollection"); // 删除集合 collection.drop(); System.out.println("已成功删除集合"); } }
При компиляции,上述程序为您提供以下结果-
已成功连接到数据库 Collection sampleCollection selected 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[]) { // 创建一个Mongo客户端 MongoClient mongo = new MongoClient("localhost", 27017); // 创建凭证 MongoCredential credential; credential = MongoCredential.createCredential("sampleUser", "myDb", "password".toCharArray()); System.out.println("Успешно подключено к базе данных"); // Доступ к базе данных MongoDatabase database = mongo.getDatabase("myDb"); System.out.println("Успешно создана коллекция"); for (String name : database.listCollectionNames()) { System.out.println(name); } } }
При компиляции,上述程序为您提供以下结果-
Успешно подключено к базе данных Успешно создана коллекция myCollection myCollection1 myCollection5
Работа остальных методов MongoDB save ()、 limit ()、 skip ()、 sort () и т.д. аналогична тому, что объяснено в последующих учебниках.