插入文档
您可以使用对象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, 请参阅我们的常见问题解答页面 以了解您需要对此代码示例进行哪些更改。
官方文档:https://docs.mongodb.com/drivers/java/sync/current/usage-examples/insertOne/