插入文档

您可以使用对象insertOne() 上方法将单个文档插入到集合中MongoCollection要插入文档,请构造一个Document包含要存储的字段和值的 对象。如果您insertOne()对尚不存在的集合调用该方法,服务器会自动为您创建它。

成功插入后,insertOne()返回 的实例 InsertOneResult您可以_id 通过调用实例getInsertedId() 上的方法来检索信息,例如您插入的文档字段InsertOneResult

如果插入操作失败,驱动程序会引发异常。有关在特定条件下引发的异常类型的更多信息,请参阅insertOne()本页底部链接的 API 文档

以下代码段将单个文档插入到movies 集合中。

笔记

此示例使用连接字符串连接到 MongoDB 实例。要了解有关连接到 MongoDB 实例的更多信息,请参阅 连接指南

package usage.examples;
import java.util.Arrays; import org.bson.Document; import org.bson.types.ObjectId; import com.mongodb.MongoException; import com.mongodb.client.MongoClient; import com.mongodb.client.MongoClients; import com.mongodb.client.MongoCollection; import com.mongodb.client.MongoDatabase; import com.mongodb.client.result.InsertOneResult;
public class InsertOne { public static void main(String[] args) { // Replace the uri string with your MongoDB deployment's connection string String uri = "<connection string uri>"; try (MongoClient mongoClient = MongoClients.create(uri)) { MongoDatabase database = mongoClient.getDatabase("sample_mflix"); MongoCollection<Document> collection = database.getCollection("movies"); try { InsertOneResult result = collection.insertOne(new Document() .append("_id", new ObjectId()) .append("title", "Ski Bloopers") .append("genres", Arrays.asList("Documentary", "Comedy"))); System.out.println("Success! Inserted document id: " + result.getInsertedId()); } catch (MongoException me) { System.err.println("Unable to insert due to an error: " + me); } } } }

 

当您运行该示例时,您应该会看到类似于以下内容的输出,并且ObjectId在值字段中插入了文档

Inserted document id: BsonObjectId{value=...}

 

插入多个文档

通过调用 对象insertMany()方法,您可以在一次操作中将多个文档插入到一个集合中MongoCollection要插入它们,请将您的Document对象添加到 aList并将其List作为参数传递insertMany()如果您insertMany()在尚不存在的集合上调用该方法,服务器将为您创建它。

成功插入后,insertMany()返回 的实例 InsertManyResult您可以_id 通过调用实例getInsertedIds() 上的方法来检索信息,例如您插入的文档字段InsertManyResult

如果插入操作失败,驱动程序会引发异常。有关在特定条件下引发的异常类型的更多信息,请参阅insertMany()本页底部链接的 API 文档

以下代码段将多个文档插入到movies 集合中。

笔记

此示例使用连接字符串连接到 MongoDB 实例。要了解有关连接到 MongoDB 实例的更多信息,请参阅 连接指南

package usage.examples;
import java.util.Arrays; import java.util.List; import org.bson.Document; import com.mongodb.MongoException; import com.mongodb.client.MongoClient; import com.mongodb.client.MongoClients; import com.mongodb.client.MongoCollection; import com.mongodb.client.MongoDatabase; import com.mongodb.client.result.InsertManyResult;
public class InsertMany { public static void main(String[] args) { // Replace the uri string with your MongoDB deployment's connection string String uri = "<connection string uri>"; try (MongoClient mongoClient = MongoClients.create(uri)) { MongoDatabase database = mongoClient.getDatabase("sample_mflix"); MongoCollection<Document> collection = database.getCollection("movies"); List<Document> movieList = Arrays.asList( new Document().append("title", "Short Circuit 3"), new Document().append("title", "The Lego Frozen Movie")); try { InsertManyResult result = collection.insertMany(movieList); System.out.println("Inserted document ids: " + result.getInsertedIds()); } catch (MongoException me) { System.err.println("Unable to insert due to an error: " + me); } } } }

 

运行该示例时,您应该会看到类似于以下内容的输出,其中ObjectId每个值字段中都包含插入的文档值:

Inserted document ids: {0=BsonObjectId{value=...}, 1=BsonObjectId{value=...}}

 

 
提示
传统 API

如果您使用的是旧 API, 请参阅我们的常见问题解答页面 以了解您需要对此代码示例进行哪些更改。

 

官方文档:https://docs.mongodb.com/drivers/java/sync/current/usage-examples/insertOne/