- Java 和 MongoDB 教程
- Java 和 MongoDB - 主页
- Java 和 MongoDB - 概述
- Java 和 MongoDB - 环境设置
- Java 和 MongoDB 示例
- Java 和 MongoDB - 连接数据库
- Java 和 MongoDB - 显示数据库
- Java 和 MongoDB - 删除数据库
- Java 和 MongoDB - 创建集合
- Java 和 MongoDB - 删除集合
- Java 和 MongoDB - 显示集合
- Java 和 MongoDB - 插入文档
- Java 和 MongoDB - 选择文档
- Java 和 MongoDB - 更新文档
- Java 和 MongoDB - 删除文档
- Java 和 MongoDB - 嵌入式文档
- Java 和 MongoDB - 参考文档
- Java 和 MongoDB - 限制记录
- Java 和 MongoDB - 记录排序
- Java 和 MongoDB 有用资源
- Java 和 MongoDB - 快速指南
- Java 和 MongoDB - 有用的资源
- Java 和 MongoDB - 讨论
Java 和 MongoDB - 快速指南
Java 和 MongoDB - 概述
MongoDB 开发团队提供了适用于 Java 的 MongoDB 驱动程序,并拥有各种可用资源。
使用 Java 连接到 MongoDB 的第一步是在 java 类路径中添加 mongodb 驱动程序,然后使用 mongodb API 连接到数据库。
连接到 MongoDB 数据库
假设 MongoDB 安装在本地并使用默认端口,然后以下语法连接到 MongoDB 数据库。
MongoClient mongoClient = MongoClients.create("mongodb://localhost:27017");
由于 MongoClient 假定了各种默认值,因此也可以使用以下方式使用它。
MongoClient mongoClient = MongoClients.create();
创建/连接到数据库
一旦 mongoClient 被实例化,它的 getDatabase() 方法就可以用来获取与数据库的连接。
MongoDatabase database = mongoClient.getDatabase("myDb");
如果数据库不存在,则上面的命令将创建相同的数据库。
在后续章节中,我们将看到使用 Java 对 MongoDB 进行各种操作。
Java 和 MongoDB - 环境设置
安装 MongoDB 数据库
使用MongoDB - 环境执行 MongoDB 安装步骤
安装Java
Java SE 可以从以下链接免费下载 -
https://www.oracle.com/technetwork/java/javase/downloads/index-jsp-138363.html
您可以根据您的操作系统下载一个版本。
按照说明下载 Java,然后运行.exe以在您的计算机上安装 Java。在计算机上安装 Java 后,您需要设置环境变量以指向正确的安装目录。
设置 Windows 2000/XP 的路径
假设您已将 Java 安装在 c:\Program Files\java\jdk 目录中 -
右键单击“我的电脑”并选择“属性”。
单击“高级”选项卡下的“环境变量”按钮。
现在,更改“Path”变量,使其也包含 Java 可执行文件的路径。例如,如果路径当前设置为“C:\WINDOWS\SYSTEM32”,则将路径更改为“C:\WINDOWS\SYSTEM32;c:\Program Files\java\jdk\bin”。
设置Windows 95/98/ME的路径
假设您已将 Java 安装在 c:\Program Files\java\jdk 目录中 -
编辑“C:\autoexec.bat”文件并在末尾添加以下行 -
设置路径=%PATH%;C:\Program Files\java\jdk\bin
设置 Linux、UNIX、Solaris、FreeBSD 的路径
应将环境变量 PATH 设置为指向 Java 二进制文件的安装位置。如果您在执行此操作时遇到问题,请参阅您的 shell 文档。
例如,如果您使用 bash 作为 shell,那么您可以在 '.bashrc:export PATH=/path/to/java:$PATH' 的末尾添加以下行
流行的 Java 编辑器
要编写 Java 程序,您需要一个文本编辑器。市场上还有更复杂的 IDE。但现在,您可以考虑以下其中一项 -
记事本- 在 Windows 计算机上,您可以使用任何简单的文本编辑器,例如记事本(本教程推荐)或 TextPad。
Netbeans - 它是一个开源且免费的 Java IDE。可以从https://netbeans.org/index.html下载。
Eclipse - 它也是由 Eclipse 开源社区开发的 Java IDE,可以从www.eclipse.org/下载。
Java MongoDB 驱动程序
您需要下载 jar mongo-java-driver.jar。确保下载这些 jar 文件的最新版本。
您需要将下载的 jar 文件包含到您的类路径中。
我们使用mongo-java-driver-3.12.8.jar来运行示例。
Java 和 MongoDB - 连接数据库
连接数据库时,需要指定数据库名称,如果数据库不存在,MongoDB会自动创建。
MongoDatabase database = mongo.getDatabase("myDb");
例子
以下是连接到数据库的代码片段 -
import com.mongodb.MongoCredential; import com.mongodb.client.MongoClient; import com.mongodb.client.MongoClients; import com.mongodb.client.MongoDatabase; public class Tester { public static void main(String[] args) { // Creating a Mongo client MongoClient mongoClient = MongoClients.create("mongodb://localhost:27017"); MongoDatabase database = mongo.getDatabase("myDb"); // Creating Credentials MongoCredential credential; credential = MongoCredential.createCredential("sampleUser", "myDb", "password".toCharArray()); System.out.println("Credentials ::"+ credential); } }
现在,让我们编译并运行上面的程序,如下所示。
$javac Tester.java $java Tester
输出
执行时,上面的程序会给出以下输出。
Credentials ::MongoCredential{mechanism=null, userName='sampleUser', source='myDb', password=<hidden>, mechanismProperties=<hidden>}
Java 和 MongoDB - 显示数据库
要显示数据库,您可以使用MongoClient.listDatabaseNames()方法来获取所有数据库的名称。
MongoIterable<String> list = mongoClient.listDatabaseNames(); for (String name : list) { System.out.println(name); }
由于我们在连接数据库章节中创建了一个空数据库,因此我们需要插入一个文档以使其在 mongodb 数据库列表中可见。
例子
以下是列出数据库的代码片段 -
import org.bson.Document; import com.mongodb.client.MongoClient; import com.mongodb.client.MongoClients; import com.mongodb.client.MongoCollection; import com.mongodb.client.MongoDatabase; import com.mongodb.client.MongoIterable; public class Tester { public static void main(String[] args) { // Creating a Mongo client MongoClient mongoClient = MongoClients.create("mongodb://localhost:27017"); MongoDatabase database = mongoClient.getDatabase("myDb"); database.createCollection("sampleCollection"); // Retrieving a collection MongoCollection<Document> collection = database.getCollection("sampleCollection"); Document document = new Document("title", "MongoDB") .append("description", "database") .append("likes", 100) .append("url", "http://www.tutorialspoint.com/mongodb/") .append("by", "tutorials point"); //Inserting document into the collection collection.insertOne(document); MongoIterable<String> list = mongoClient.listDatabaseNames(); for (String name : list) { System.out.println(name); } } }
现在,让我们编译并运行上面的程序,如下所示。
$javac Tester.java $java Tester
输出
执行时,上面的程序会给出以下输出。
admin config local myDb
Java 和 MongoDB - 删除数据库
要删除数据库,可以使用MongoDatabse.drop()方法删除选定的数据库。
// Creating a Mongo client MongoClient mongoClient = MongoClients.create(); // connect the database MongoDatabase database = mongoClient.getDatabase("myDb"); // drop the database database.drop();
例子
以下是删除数据库的代码片段 -
import com.mongodb.client.MongoClient; import com.mongodb.client.MongoClients; import com.mongodb.client.MongoDatabase; import com.mongodb.client.MongoIterable; public class Tester { public static void main(String[] args) { // Creating a Mongo client MongoClient mongoClient = MongoClients.create("mongodb://localhost:27017"); MongoDatabase database = mongoClient.getDatabase("myDb"); // drop the database database.drop(); System.out.println("Database dropped."); // print the databases MongoIterable<String> list = mongoClient.listDatabaseNames(); for (String name : list) { System.out.println(name); } } }
现在,让我们编译并运行上面的程序,如下所示。
$javac Tester.java $java Tester
输出
执行时,上面的程序会给出以下输出。
Database dropped. admin config local
Java 和 MongoDB - 创建集合
要删除数据库,您可以使用MongoDatabse.createCollection()方法在数据库中创建集合。
// Creating a Mongo client MongoClient mongoClient = MongoClients.create(); // Connect the database MongoDatabase database = mongoClient.getDatabase("myDb"); // Create the collection database.createCollection("sampleCollection");
例子
以下是创建集合的代码片段 -
import com.mongodb.client.MongoClient; import com.mongodb.client.MongoClients; import com.mongodb.client.MongoDatabase; public class Tester { public static void main(String[] args) { // Creating a Mongo client MongoClient mongoClient = MongoClients.create("mongodb://localhost:27017"); // Connect to database MongoDatabase database = mongoClient.getDatabase("myDb"); // Create the collection database.createCollection("sampleCollection"); System.out.println("Collection created."); } }
现在,让我们编译并运行上面的程序,如下所示。
$javac Tester.java $java Tester
输出
执行时,上面的程序会给出以下输出。
Collection created.
Java 和 MongoDB - 删除集合
要删除数据库,可以使用collection.drop()方法删除数据库中的集合。
// Get the collection MongoCollection<Document> collection = database.getCollection("sampleCollection"); // delete the collection collection.drop();
例子
以下是删除集合的代码片段 -
import org.bson.Document; import com.mongodb.client.MongoClient; import com.mongodb.client.MongoClients; import com.mongodb.client.MongoCollection; import com.mongodb.client.MongoDatabase; public class Tester { public static void main(String[] args) { // Creating a Mongo client MongoClient mongoClient = MongoClients.create("mongodb://localhost:27017"); // get the database MongoDatabase database = mongoClient.getDatabase("myDb"); // Retrieving a collection MongoCollection<Document> collection = database.getCollection("sampleCollection"); collection.drop(); System.out.println("Collection dropped."); } }
现在,让我们编译并运行上面的程序,如下所示。
$javac Tester.java $java Tester
输出
执行时,上面的程序会给出以下输出。
Collection dropped.
Java 和 MongoDB - 显示集合
要显示集合列表,您可以使用database.listCollectionNames()方法来获取数据库中的集合名称列表。
MongoIterable<String> collections = database.listCollectionNames();
例子
以下是显示集合列表的代码片段 -
import com.mongodb.client.MongoClient; import com.mongodb.client.MongoClients; import com.mongodb.client.MongoDatabase; import com.mongodb.client.MongoIterable; public class Tester { public static void main(String[] args) { // Creating a Mongo client MongoClient mongoClient = MongoClients.create("mongodb://localhost:27017"); // Get the database MongoDatabase database = mongoClient.getDatabase("myDb"); // Create the collection database.createCollection("sampleCollection"); // Get the list of collection names MongoIterable<String> collections = database.listCollectionNames(); for (String name : collections) { System.out.println(name); } } }
现在,让我们编译并运行上面的程序,如下所示。
$javac Tester.java $java Tester
输出
执行时,上面的程序会给出以下输出。
sampleCollection
Java 和 MongoDB - 插入文档
要在集合中插入文档,可以使用collection.insertOne()或collection.insertMany()方法在集合中插入文档。
// insert a single document collection.insertOne(document); // insert multiple documents collection.insertMany(documents);
例子
以下是在集合中插入文档的代码片段 -
import java.util.ArrayList; import java.util.List; import org.bson.Document; import com.mongodb.client.MongoClient; import com.mongodb.client.MongoClients; import com.mongodb.client.MongoCollection; import com.mongodb.client.MongoDatabase; public class Tester { public static void main(String[] args) { // Creating a Mongo client MongoClient mongoClient = MongoClients.create("mongodb://localhost:27017"); MongoDatabase database = mongoClient.getDatabase("myDb"); // Get the collection MongoCollection<Document> collection = database.getCollection("sampleCollection"); Document document = new Document("First_Name", "Mahesh") .append("Last_Name", "Parashar") .append("Date_Of_Birth", "1990-08-21") .append("e_mail", "mahesh_parashar.123@gmail.com") .append("phone", "9034343345"); collection.insertOne(document); List<Document> documents = new ArrayList<>(); documents.add(new Document("First_Name", "Radhika") .append("Last_Name", "Sharma") .append("Date_Of_Birth", "1995-09-26") .append("e_mail", "radhika_sharma.123@gmail.com") .append("phone", "9000012345")); documents.add(new Document("First_Name", "Rachel") .append("Last_Name", "Christopher") .append("Date_Of_Birth", "1990-02-16") .append("e_mail", "Rachel_Christopher.123@gmail.com") .append("phone", "9000054321")); documents.add(new Document("First_Name", "Fathima") .append("Last_Name", "Sheik") .append("Date_Of_Birth", "1990-02-16") .append("e_mail", "Fathima_Sheik.123@gmail.com") .append("phone", "9000054321")); collection.insertMany(documents); System.out.println("Documents inserted."); } }
现在,让我们编译并运行上面的程序,如下所示。
$javac Tester.java $java Tester
输出
执行时,上面的程序会给出以下输出。
Documents inserted.
Java 和 MongoDB - 选择文档
要选择集合中的文档,可以使用collection.find()或collection.find(filter)方法来选择集合中的文档。
// find all documents of a collection collection.find(); // find document(s) fulfiling the filter criteria collection.find(filter);
例子
以下是显示所选文档的代码片段 -
import java.util.ArrayList; import java.util.List; import org.bson.Document; import com.mongodb.client.FindIterable; import com.mongodb.client.MongoClient; import com.mongodb.client.MongoClients; import com.mongodb.client.MongoCollection; import com.mongodb.client.MongoDatabase; import com.mongodb.client.model.Filters; public class Tester { public static void main(String[] args) { // Creating a Mongo client MongoClient mongoClient = MongoClients.create("mongodb://localhost:27017"); MongoDatabase database = mongoClient.getDatabase("myDb"); // Get the collection MongoCollection<Document> collection = database.getCollection("sampleCollection"); // Find all documents FindIterable<Document> allDocuments = collection.find(); for (Document document : allDocuments) { System.out.println(document); } System.out.println("***Selected Document***"); // Select a particular document FindIterable<Document> documents = collection.find(Filters.eq("First_Name","Mahesh")); for (Document document : documents) { System.out.println(document); } } }
现在,让我们编译并运行上面的程序,如下所示。
$javac Tester.java $java Tester
输出
执行时,上面的程序会给出以下输出。
Document{{_id=60b70d426214461f10ac5c99, First_Name=Mahesh, Last_Name=Parashar, Date_Of_Birth=1990-08-21, e_mail=mahesh_parashar.123@gmail.com, phone=9034343345}} Document{{_id=60b70d426214461f10ac5c9a, First_Name=Radhika, Last_Name=Sharma, Date_Of_Birth=1995-09-26, e_mail=radhika_sharma.123@gmail.com, phone=9000012345}} Document{{_id=60b70d426214461f10ac5c9b, First_Name=Rachel, Last_Name=Christopher, Date_Of_Birth=1990-02-16, e_mail=Rachel_Christopher.123@gmail.com, phone=9000054321}} Document{{_id=60b70d426214461f10ac5c9c, First_Name=Fathima, Last_Name=Sheik, Date_Of_Birth=1990-02-16, e_mail=Fathima_Sheik.123@gmail.com, phone=9000054321}} ******** Document{{_id=60b70d426214461f10ac5c99, First_Name=Mahesh, Last_Name=Parashar, Date_Of_Birth=1990-08-21, e_mail=mahesh_parashar.123@gmail.com, phone=9034343345}}
Java 和 MongoDB - 更新文档
要更新集合中的文档,可以使用collection.updateOne()方法来更新集合中的特定文档。
collection.updateOne(filter,update);
例子
以下是更新和显示更新文档的代码片段 -
import java.util.ArrayList; import java.util.List; import org.bson.Document; import com.mongodb.client.FindIterable; import com.mongodb.client.MongoClient; import com.mongodb.client.MongoClients; import com.mongodb.client.MongoCollection; import com.mongodb.client.MongoDatabase; import com.mongodb.client.model.Filters; import com.mongodb.client.model.Updates; public class Tester { public static void main(String[] args) { // Creating a Mongo client MongoClient mongoClient = MongoClients.create("mongodb://localhost:27017"); MongoDatabase database = mongoClient.getDatabase("myDb"); // Get the collection MongoCollection<Document> collection = database.getCollection("sampleCollection"); // Find all documents collection.updateOne(Filters.eq("First_Name","Mahesh"), Updates.set("e_mail", "maheshparashar@gmail.com")); System.out.println("Document Updated."); System.out.println("***Updated Document***"); // Select a particular document FindIterable<Document> documents = collection.find(Filters.eq("First_Name","Mahesh")); for (Document document : documents) { System.out.println(document); } } }
现在,让我们编译并运行上面的程序,如下所示。
$javac Tester.java $java Tester
输出
执行时,上面的程序会给出以下输出。
Document Updated. ***Updated Document*** Document{{_id=60b70d426214461f10ac5c99, First_Name=Mahesh, Last_Name=Parashar, Date_Of_Birth=1990-08-21, e_mail=maheshparashar@gmail.com, phone=9034343345}}
Java 和 MongoDB - 删除文档
要删除集合中的文档,可以使用collection.deleteOne()方法删除集合中的特定文档。
collection.deleteOne(filter);
例子
以下是删除文档并显示剩余文档的代码片段 -
import org.bson.Document; import com.mongodb.client.FindIterable; import com.mongodb.client.MongoClient; import com.mongodb.client.MongoClients; import com.mongodb.client.MongoCollection; import com.mongodb.client.MongoDatabase; import com.mongodb.client.model.Filters; public class Tester { public static void main(String[] args) { // Creating a Mongo client MongoClient mongoClient = MongoClients.create("mongodb://localhost:27017"); MongoDatabase database = mongoClient.getDatabase("myDb"); // Get the collection MongoCollection<Document> collection = database.getCollection("sampleCollection"); // Find all documents collection.deleteOne(Filters.eq("First_Name","Mahesh")); System.out.println("Document deleted."); System.out.println("***Documents***"); // Select a particular document FindIterable<Document> documents = collection.find(); for (Document document : documents) { System.out.println(document); } } }
现在,让我们编译并运行上面的程序,如下所示。
$javac Tester.java $java Tester
输出
执行时,上面的程序会给出以下输出。
Document deleted. ***Documents*** Document{{_id=60b70d426214461f10ac5c9a, First_Name=Radhika, Last_Name=Sharma, Date_Of_Birth=1995-09-26, e_mail=radhika_sharma.123@gmail.com, phone=9000012345}} Document{{_id=60b70d426214461f10ac5c9b, First_Name=Rachel, Last_Name=Christopher, Date_Of_Birth=1990-02-16, e_mail=Rachel_Christopher.123@gmail.com, phone=9000054321}} Document{{_id=60b70d426214461f10ac5c9c, First_Name=Fathima, Last_Name=Sheik, Date_Of_Birth=1990-02-16, e_mail=Fathima_Sheik.123@gmail.com, phone=9000054321}}
Java 和 MongoDB - 嵌入式文档
要在集合中插入带有嵌入文档的文档,您可以使用DBObject / BasicDBObject对象,如下所示 -
// Create an embedded document BasicDBObject comment = new BasicDBObject(); comment.put("user", "User1"); comment.put("message", "My First Comment"); comment.put("dateCreated", "20/2/2020"); comment.put("like", "0"); // create an array List<String> tags = new ArrayList<String>(); tags.add("mongodb"); tags.add("database"); tags.add("NoSQL"); // add array and embedded documents Document document = new Document("title", "MongoDB Overview") .append("tags",tags) .append("comment", comment);
例子
以下是插入带有嵌入文档的文档并显示它们的代码片段 -
import java.util.ArrayList; import java.util.List; import org.bson.Document; import com.mongodb.BasicDBObject; import com.mongodb.DBObject; import com.mongodb.client.FindIterable; import com.mongodb.client.MongoClient; import com.mongodb.client.MongoClients; import com.mongodb.client.MongoCollection; import com.mongodb.client.MongoDatabase; import com.mongodb.client.model.Filters; public class Tester { public static void main(String[] args) { // Creating a Mongo client MongoClient mongoClient = MongoClients.create("mongodb://localhost:27017"); MongoDatabase database = mongoClient.getDatabase("myDb"); // Create the collection database.createCollection("post"); MongoCollection<Document> collection = database.getCollection("post"); List<String> tags = new ArrayList<String>(); tags.add("mongodb"); tags.add("database"); tags.add("NoSQL"); BasicDBObject comment1 = new BasicDBObject(); comment1.put("user", "User1"); comment1.put("message", "My First Comment"); comment1.put("dateCreated", "20/2/2020"); comment1.put("like", "0"); BasicDBObject comment2 = new BasicDBObject(); comment2.put("user", "User2"); comment2.put("message", "My Second Comment"); comment2.put("dateCreated", "20/2/2020"); comment2.put("like", "0"); List<DBObject> comments = new ArrayList<DBObject>(); comments.add(comment1); comments.add(comment2); Document document = new Document("title", "MongoDB Overview") .append("description", "MongoDB is no SQL database") .append("by", "tutorials point") .append("url", "http://www.tutorialspoint.com") .append("tags",tags) .append("comments", comments); collection.insertOne(document); FindIterable<Document> documents = collection.find(Filters.eq("title","MongoDB Overview")); for (Document doc : documents) { System.out.println(doc); } } }
现在,让我们编译并运行上面的程序,如下所示。
$javac Tester.java $java Tester
执行时,上面的程序会给出以下输出。
输出
Document{{_id=60b7ab7614bd6b4a14b46d47, title=MongoDB Overview, description=MongoDB is no SQL database, by=tutorials point, url=http://www.tutorialspoint.com, tags=[mongodb, database, NoSQL], comments=[Document{{user=User1, message=My First Comment, dateCreated=20/2/2020, like=0}}, Document{{user=User2, message=My Second Comment, dateCreated=20/2/2020, like=0}}] }}
Java 和 MongoDB - 参考文档
要在集合中插入包含引用文档的文档,您可以使用DBRef对象,如下所示 -
// create a document Document comment1 = new Document(); comment1.put("_id", "comment1"); comment1.put("user", "User1"); comment1.put("message", "My First Comment"); comment1.put("dateCreated", "20/2/2020"); comment1.put("like", "0"); // create a database reference DBRef comment1Ref = new DBRef("post", comment1.get("_id")); // insert the reference in the document Document document = new Document("title", "Java Overview") .append("comment1", comment1Ref);
例子
以下是插入包含引用文档的文档并显示它们的代码片段 -
import java.util.ArrayList; import java.util.List; import org.bson.Document; import com.mongodb.DBRef; import com.mongodb.client.FindIterable; import com.mongodb.client.MongoClient; import com.mongodb.client.MongoClients; import com.mongodb.client.MongoCollection; import com.mongodb.client.MongoDatabase; import com.mongodb.client.model.Filters; public class Tester { public static void main(String[] args) { // Creating a Mongo client MongoClient mongoClient = MongoClients.create("mongodb://localhost:27017"); MongoDatabase database = mongoClient.getDatabase("myDb"); MongoCollection<Document> collection = database.getCollection("post"); List<String> tags = new ArrayList<String>(); tags.add("mongodb"); tags.add("database"); tags.add("NoSQL"); Document comment1 = new Document(); comment1.put("_id", "comment1"); comment1.put("user", "User1"); comment1.put("message", "My First Comment"); comment1.put("dateCreated", "20/2/2020"); comment1.put("like", "0"); DBRef comment1Ref = new DBRef("post", comment1.get("_id")); Document comment2 = new Document(); comment2.put("_id", "comment2"); comment2.put("user", "User2"); comment2.put("message", "My Second Comment"); comment2.put("dateCreated", "20/2/2020"); comment2.put("like", "0"); DBRef comment2Ref = new DBRef("post", comment2.get("_id")); List<Document> comments = new ArrayList<Document>(); comments.add(comment1); comments.add(comment2); Document document = new Document("title", "Java Overview") .append("description", "Java is programming language") .append("by", "tutorials point") .append("url", "http://www.tutorialspoint.com") .append("tags",tags) .append("comment1", comment1Ref) .append("comment2", comment2Ref); collection.insertMany(comments); collection.insertOne(document); FindIterable<Document> documents = collection.find(Filters.eq("title","Java Overview")); for (Document doc : documents) { System.out.println(doc); } } }
现在,让我们编译并运行上面的程序,如下所示。
$javac Tester.java $java Tester
输出
执行时,上面的程序会给出以下输出。
Document{{_id=60b7b26b7671f469993fdc3c, title=Java Overview, description=Java is programming language, by=tutorials point, url=http://www.tutorialspoint.com, tags=[mongodb, database, NoSQL], comment1={ "$ref" : "post", "$id" : "comment1" }, comment2={ "$ref" : "post", "$id" : "comment2" } }}
Java 和 MongoDB - 限制文档
要在集合中选择给定数量的文档,可以使用collection.find().limit()方法来选择所需的数量。集合的文档。
int n = 2; // find required documents of a collection collection.find().limit(n);
例子
以下是显示有限文档的代码片段 -
import org.bson.Document; import com.mongodb.client.FindIterable; import com.mongodb.client.MongoClient; import com.mongodb.client.MongoClients; import com.mongodb.client.MongoCollection; import com.mongodb.client.MongoDatabase; public class Tester { public static void main(String[] args) { // Creating a Mongo client MongoClient mongoClient = MongoClients.create("mongodb://localhost:27017"); MongoDatabase database = mongoClient.getDatabase("myDb"); // Get the collection MongoCollection<Document> collection = database.getCollection("sampleCollection"); // Find two documents FindIterable<Document> allDocuments = collection.find().limit(2); for (Document document : allDocuments) { System.out.println(document); } } }
现在,让我们编译并运行上面的程序,如下所示。
$javac Tester.java $java Tester
输出
执行时,上面的程序会给出以下输出。
Document{{_id=60b70d426214461f10ac5c9a, First_Name=Radhika, Last_Name=Sharma, Date_Of_Birth=1995-09-26, e_mail=radhika_sharma.123@gmail.com, phone=9000012345}} Document{{_id=60b70d426214461f10ac5c9b, First_Name=Rachel, Last_Name=Christopher, Date_Of_Birth=1990-02-16, e_mail=Rachel_Christopher.123@gmail.com, phone=9000054321}}
Java 和 MongoDB - 文档排序
要获取集合中的排序文档,可以使用collection.find().sort()方法来选择集合中的排序文档。
// find sorted documents of a collection collection.find().sort(new BasicDBObject("First_Name",-1));
例子
以下是显示排序文档的代码片段 -
import org.bson.Document; import com.mongodb.BasicDBObject; import com.mongodb.client.FindIterable; import com.mongodb.client.MongoClient; import com.mongodb.client.MongoClients; import com.mongodb.client.MongoCollection; import com.mongodb.client.MongoDatabase; public class Tester { public static void main(String[] args) { // Creating a Mongo client MongoClient mongoClient = MongoClients.create("mongodb://localhost:27017"); MongoDatabase database = mongoClient.getDatabase("myDb"); // Get the collection MongoCollection<Document> collection = database.getCollection("sampleCollection"); System.out.println("***Discending Order***"); // Sort in Descending order FindIterable<Document> allDocuments = collection.find().sort(new BasicDBObject("First_Name",-1)); for (Document document : allDocuments) { System.out.println(document); } System.out.println("***Ascending Order***"); // Sort in Ascending order allDocuments = collection.find().sort(new BasicDBObject("First_Name",1)); for (Document document : allDocuments) { System.out.println(document); } } }
现在,让我们编译并运行上面的程序,如下所示。
$javac Tester.java $java Tester
输出
执行时,上面的程序会给出以下输出。
Document{{_id=60b70d426214461f10ac5c9a, First_Name=Radhika, Last_Name=Sharma, Date_Of_Birth=1995-09-26, e_mail=radhika_sharma.123@gmail.com, phone=9000012345}} Document{{_id=60b70d426214461f10ac5c9b, First_Name=Rachel, Last_Name=Christopher, Date_Of_Birth=1990-02-16, e_mail=Rachel_Christopher.123@gmail.com, phone=9000054321}} Document{{_id=60b70d426214461f10ac5c9c, First_Name=Fathima, Last_Name=Sheik, Date_Of_Birth=1990-02-16, e_mail=Fathima_Sheik.123@gmail.com, phone=9000054321}} ***Ascending Order*** Document{{_id=60b70d426214461f10ac5c9c, First_Name=Fathima, Last_Name=Sheik, Date_Of_Birth=1990-02-16, e_mail=Fathima_Sheik.123@gmail.com, phone=9000054321}} Document{{_id=60b70d426214461f10ac5c9b, First_Name=Rachel, Last_Name=Christopher, Date_Of_Birth=1990-02-16, e_mail=Rachel_Christopher.123@gmail.com, phone=9000054321}} Document{{_id=60b70d426214461f10ac5c9a, First_Name=Radhika, Last_Name=Sharma, Date_Of_Birth=1995-09-26, e_mail=radhika_sharma.123@gmail.com, phone=9000012345}}