插入文档
您可以使用对象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/