- 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 - 参考文档
要在集合中插入包含引用文档的文档,您可以使用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" } }}