- 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://: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", "https://tutorialspoint.tw")
.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=https://tutorialspoint.tw, tags=[mongodb, database, NoSQL],
comment1={ "$ref" : "post", "$id" : "comment1" }, comment2={ "$ref" : "post", "$id" : "comment2" }
}}
廣告