文档菜单
文档首页
/ / /
Java 同步驱动程序
/ /

插入多个文档

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

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

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

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

注意

此示例使用连接 URI 连接到 MongoDB 实例。有关连接到您的 MongoDB 实例的更多信息,请参阅连接指南.

// Inserts sample documents describing movies by using the Java driver
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");
// Creates two sample documents containing a "title" field
List<Document> movieList = Arrays.asList(
new Document().append("title", "Short Circuit 3"),
new Document().append("title", "The Lego Frozen Movie"));
try {
// Inserts sample documents describing movies into the collection
InsertManyResult result = collection.insertMany(movieList);
// Prints the IDs of the inserted documents
System.out.println("Inserted document ids: " + result.getInsertedIds());
// Prints a message if any exceptions occur during the operation
} 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,请参阅我们的常见问题解答页面,了解您需要对此代码示例进行哪些更改。

有关本页面上提到的类和方法的其他信息,请参阅以下 API 文档

  • insertMany()

  • Document

  • InsertManyResult

返回

插入单个文档