安装
在Java程序中开始使用MongoDB之前,需要确保在计算机上设置了MongoDB CLIENT和Java。您可以按照Java教程以在计算机上安装Java。现在,让我们检查如何设置MongoDB CLIENT。
您需要下载jar mongodb-driver-3.11.2.jar and its dependency mongodb-driver-core-3.11.2.jar.
。确保下载这些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);
}
}
创建集合
要创建集合,使用 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("已成功连接到数据库");
//访问数据库
MongoDatabase database = mongo.getDatabase("myDb");
//创建集合
database.createCollection("sampleCollection");
System.out.println("已成功创建集合");
}
}
获取/选择集合
要从数据库中获取/选择一个集合,需要使用 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("已成功连接到数据库");
// 访问数据库
MongoDatabase database = mongo.getDatabase("myDb");
// 创建集合
System.out.println("已成功创建集合");
// 检索集合
MongoCollection<Document> collection = database.getCollection("myCollection");
System.out.println("已成功选择集合myCollection");
}
}
插入文档
要将文档插入到 MongoDB 中,需要使用 com.MongoDB.client.MongoCollection 类的 insert ()方法。
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", "https://www.feishuai.vipmongodb/")
.append("by", "feishuai.vip");
//将文档插入集合中
collection.insertOne(document);
System.out.println("文档插入成功");
}
检索所有文档
要从集合中选择所有文档,请使用com.mongodb.client.MongoCollection的classfind()方法。此方法返回一个游标,因此您需要迭代此游标。
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", "https://www.feishuai.vipmongodb/")
.append("by", "feishuai.vip");
Document document2 = new Document("title", "RethinkDB")
.append("description", "database")
.append("likes", 200)
.append("url", "https://www.feishuai.viprethinkdb/")
.append("by", "feishuai.vip");
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++;
}
}
}
更新文档
要从集合中更新文档,请使用com.mongodb.client.MongoCollection的classupdateOne()方法
。
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++;
}
}
}
删除文档
要从集合中删除文档,您需要使用类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++;
}
}
}
删除集合
要从数据库中删除集合,您需要使用类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("已成功删除集合");
}
}
列出所有集合
要列出数据库中的所有集合,您需要使用类com.mongodb.client.MongoDatabase的istCollectionNames()方法。
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);
}
}
}
其余的 MongoDB 方法 save ()、 limit ()、 skip ()、 sort ()等的工作方式与后续教程中解释的相同。