Docs 菜单
Docs 主页
/
数据库手册
/

插入文档


➤ 使用右上角的 Select your language(选择语言)下拉菜单,设置以下示例的语言或选择 MongoDB Compass。


本页提供 MongoDB 中插入操作的示例。

您可以使用以下方法在 MongoDB 中插入文档:

  • 您的编程语言的驱动程序。

  • MongoDB Atlas 用户界面。要了解更多信息,请参阅MongoDB Atlas UI 中的插入文档

  • MongoDB Compass。

注意

创建集合

如果该集合当前不存在,则插入操作将创建该集合。

要在 MongoDB Atlas 用户界面中插入文档,请完成以下步骤。要了解在 MongoDB Atlas 用户界面中处理文档的更多信息,请参阅创建、查看、更新和删除文档

1

警告

导航改进正在进行中

  1. 如果尚未显示,请从导航栏上的 Organizations 菜单中选择包含所需项目的组织。

  2. 如果尚未显示,请从导航栏的 Projects 菜单中选择您的项目。

  3. 如果尚未出现,请单击侧边栏中的 Clusters(集群)。

    会显示集群页面。

2
  1. 对于要添加文档的集群,请单击 Browse Collections

  2. 在左侧导航窗格中,选择数据库。

  3. 在左侧导航窗格中,选择该集合。

3
  1. 单击 Insert Document(连接)。

  2. 点击{} {} 图标,打开 JSON 视图。

  3. 将文档数组粘贴到文本输入框中。例如,以下输入会创建四个文档,每个文档包含三个字段:

    [
    { "prodId": 100, "price": 20, "quantity": 125 },
    { "prodId": 101, "price": 10, "quantity": 234 },
    { "prodId": 102, "price": 15, "quantity": 432 },
    { "prodId": 103, "price": 17, "quantity": 320 }
    ]
4

MongoDB Atlas 会将文档添加到集合中。

db.collection.insertOne()单个文档插入集合。

以下示例将新文档插入 inventory 集合。如果文档未指定 _id 字段,MongoDB 会将具有 ObjectId 值的 _id 字段添加到新文档中。请参阅插入行为。

要使用 MongoDB Compass 插入单个文档,请执行以下操作:

  1. 导航到要插入文档的集合:

    1. 在左侧 MongoDB Compass 导航窗格中,单击包含目标集合的数据库。

    2. 在数据库视图中,点击目标集合的名称。

  2. 单击 Add Data 按钮,然后单击 Insert document

    Compass 插入按钮
  3. 将文档粘贴到您的文档中。例如,您可以将以下代码粘贴到 Compass 中,以将 canvas 文档插入到 inventory 集合中:

    {
    "item": "canvas",
    "qty": 100,
    "tags": ["cotton"],
    "size": {
    "h": 28,
    "w": 35.5,
    "uom": "cm"
    }
    }
  4. 单击 Insert(连接)。

以下示例将新文档插入 test.inventory 集合中:

以下示例将新文档插入inventory集合。 如果文档未指定_id字段, C驾驶员会将具有 ObjectId 值的_id字段添加到新文档中。 有关详细信息,请参阅插入行为。

IMongoCollection.InsertOne()单个文档插入到集合中。

以下示例将新文档插入 inventory 集合。如果文档未指定 _id 字段,C# 驱动程序会将具有 ObjectId 值的 _id 字段添加到新文档中。请参阅插入行为

Collection.InsertOne单个文档插入到集合中。

以下示例将新文档插入inventory集合。 如果文档未指定_id字段,驱动程序会将具有 ObjectId 值的_id字段添加到新文档中。 请参阅插入行为。

com.mongodb.reactivestreams.client.MongoCollection.insertOne 使用Java Reactive Streams 驱动程序单个文档插入到集合:

{ item: "canvas", qty: 100, tags: ["cotton"], size: { h: 28, w: 35.5, uom: "cm" } }

以下示例将上述文档插入 inventory 集合。如果文档未指定 _id 字段,驱动程序会将具有 ObjectId 值的 _id 字段添加到新文档中。请参阅插入行为。

com.mongodb.client.MongoCollection.insertOne 单个 文档 插入到集合中。

以下示例将新文档插入inventory集合。 如果文档未指定_id字段,驱动程序会将具有 ObjectId 值的_id字段添加到新文档中。 请参阅插入行为。

MongoCollection.insertOne 单个 文档 插入到集合中。

以下示例将新文档插入inventory集合。 如果文档未指定_id字段,驱动程序会将具有 ObjectId 值的_id字段添加到新文档中。 请参阅插入行为。

motor.motor_asyncio.AsyncIOMotorCollection.insert_one单个文档插入集合。

以下示例将新文档插入 inventory 集合。如果文档未指定 _id 字段,Motor 驱动程序会将具有 ObjectId 值的 _id 字段添加到新文档中。请参阅插入行为。

Collection.insertOne()单个 文档插入到集合中。

以下示例将新文档插入 inventory 集合。如果文档未指定 _id 字段,Node.js 驱动程序会将具有 ObjectId 值的 _id 字段添加到新文档中。请参阅插入行为。

MongoDB\\Collection::insertOne()单个文档插入集合。

以下示例将新文档插入 inventory 集合。如果文档未指定 _id 字段,PHP 驱动程序会将具有 ObjectId 值的 _id 字段添加到新文档中。请参阅插入行为

pymongo.collection.Collection.insert_one单个文档插入集合。

以下示例将新文档插入 inventory 集合。如果文档未指定 _id 字段,PyMongo 驱动程序会将具有 ObjectId 值的 _id 字段添加到新文档中。请参阅插入行为。

Mongo:: Collection #insert_one ()文档插入集合。

以下示例将新文档插入 inventory 集合。如果文档未指定 _id 字段,Ruby 驱动程序会将具有 ObjectId 值的 _id 字段添加到新文档中。请参阅插入行为。

collection.insertOne()单个文档插入到集合中。

以下示例将新文档插入 inventory 集合。如果文档未指定 _id 字段,Scala 驱动程序会将具有 ObjectId 值的 _id 字段添加到新文档。请参阅插入行为

db.inventory.insertOne(
{ item: "canvas", qty: 100, tags: ["cotton"], size: { h: 28, w: 35.5, uom: "cm" } }
)
Compass 将新文档插入到集合中
Document canvas = new Document("item", "canvas")
.append("qty", 100)
.append("tags", singletonList("cotton"));
Document size = new Document("h", 28)
.append("w", 35.5)
.append("uom", "cm");
canvas.put("size", size);
Publisher<Success> insertOnePublisher = collection.insertOne(canvas);
Document canvas = new Document("item", "canvas")
.append("qty", 100)
.append("tags", singletonList("cotton"));
Document size = new Document("h", 28)
.append("w", 35.5)
.append("uom", "cm");
canvas.put("size", size);
collection.insertOne(canvas);
await db.inventory.insert_one(
{
"item": "canvas",
"qty": 100,
"tags": ["cotton"],
"size": {"h": 28, "w": 35.5, "uom": "cm"},
}
)
await db.collection('inventory').insertOne({
item: 'canvas',
qty: 100,
tags: ['cotton'],
size: { h: 28, w: 35.5, uom: 'cm' }
});
$insertOneResult = $db->inventory->insertOne([
'item' => 'canvas',
'qty' => 100,
'tags' => ['cotton'],
'size' => ['h' => 28, 'w' => 35.5, 'uom' => 'cm'],
]);
db.inventory.insert_one(
{
"item": "canvas",
"qty": 100,
"tags": ["cotton"],
"size": {"h": 28, "w": 35.5, "uom": "cm"},
}
)

insertOne() 将返回一个文档,其中包含新插入的文档的 _id 字段值。有关返回文档的示例,请参阅 db.collection.insertOne() 引用

注意

MongoDB Compass 会自动生成 _id 字段及其值。生成的 ObjectID 由一个随机生成的唯一十六进制值组成。

您可以在插入文档之前更改此值,只要它保持唯一并且是有效的 ObjectId。有关 _id 字段的更多信息,请参阅 _id 字段。

要检索您刚刚插入的文档,请在 MongoDB Compass 查询栏中指定过滤器,然后查询集合,并单击 Find 以执行查询。

以下过滤器指定 MongoDB Compass 仅返回 item 字段等于 canvas 的文档。有关 MongoDB Compass 查询栏的更多信息,请参阅查询栏。

mongoc_collection_insert_one true如果成功,则返回false ;或者,如果参数无效、服务器或网络错误,则返回 并设置错误。

要检索刚刚插入的文档,请查询该集合:

要检索刚刚插入的文档,请查询该集合:

Collection.InsertOne 函数返回 InsertOneResult 的一个实例,其 InsertedID 属性包含新插入文档的 _id

要检索刚刚插入的文档,请查询该集合:

com.mongodb.reactivestreams。 客户端.MongoCollection.insertOne 返回 发布者 对象。当订阅者请求数据时, Publisher会将文档插入到集合中。

要检索刚刚插入的文档,请查询该集合:

com.mongodb.client.MongoCollection.insertOne 返回 InsertOneResult 的实例 。您可以通过调用_id getInsertedId() 来访问插入文档的 字段 方法。

要检索刚刚插入的文档,请查询该集合:

MongoCollection.insertOne 返回 InsertOneResult 的实例 。您可以通过访问权限结果的_id 字段来访问插入文档的insertedId 字段。

要检索刚刚插入的文档,请查询该集合:

insert_one返回 pymongo.results.InsertOneResult 的一个实例,其 inserted_id 字段包含新插入文档的 _id 字段。

要检索刚刚插入的文档,请查询该集合:

insertOne() 会返回一个提供 result 的 Promise。result.insertedId Promise 包含新插入文档的 _id

要检索刚刚插入的文档,请查询该集合:

成功插入后,insertOne() 方法会返回一个 MongoDB\\InsertOneResult 实例,其 getInsertedId() 方法返回新插入文档的 _id

要检索刚刚插入的文档,请查询该集合:

insert_one返回 pymongo.results.InsertOneResult 的一个实例,其 inserted_id 字段包含新插入文档的 _id 字段。

要检索刚刚插入的文档,请查询该集合:

成功插入后,insert_one () 方法返回 Mongo::Operation::Result 的实例,其 inserted_id 属性包含新插入文档的 _id

要检索刚刚插入的文档,请查询该集合:

成功插入后,collection.insertOne() 方法会返回一个 collection.insertOne().results(); 实例其 inserted_id 属性包含新插入文档的 _id

要检索刚刚插入的文档,请查询该集合:

db.inventory.find( { item: "canvas" } )
查询集合中的匹配文档
FindPublisher<Document> findPublisher = collection.find(eq("item", "canvas"));
FindIterable<Document> findIterable = collection.find(eq("item", "canvas"));
cursor = db.inventory.find({"item": "canvas"})
const cursor = db.collection('inventory').find({ item: 'canvas' });
$cursor = $db->inventory->find(['item' => 'canvas']);
cursor = db.inventory.find({"item": "canvas"})

db.collection.insertMany() 可以将多个文档插入到一个集合中。将一组文档传递给该方法。

以下示例将三个新文档插入到 inventory 集合中。如果文档未指定 _id 字段,MongoDB 会将具有 ObjectId 值的 _id 字段添加到每个文档中。请参阅插入行为。

有关使用 MongoDB Compass 插入文档的说明,请参阅插入文档。您可以将以下文档粘贴到 Compass 的 Insert Document 对话框中,以将多个 item 文档插入 inventory 集合中:

mongoc_bulk_operation_insert_with_opts 多个 文档 插入到一个集合中。您必须将文档的可迭代对象传递给该方法。

以下示例将三个新文档插入inventory集合。 如果文档未指定_id字段, C驾驶员会将具有 ObjectId 值的_id字段添加到每个文档中。 请参阅插入行为。

imongoCollection.insertMany() 可以将多个文档插入到一个集合中。将可枚举的文档集合传递给该方法。

以下示例将三个新文档插入到 inventory 集合中。如果文档未指定 _id 字段,驱动程序会将带有 ObjectId 值的 _id 字段添加到每个文档。请参阅插入行为。

Collection.InsertMany 可以将多个文档插入集合。

以下示例将三个新文档插入到 inventory 集合中。如果文档未指定 _id 字段,驱动程序会将带有 ObjectId 值的 _id 字段添加到每个文档。请参阅插入行为。

com.mongodb.reactivestreams.client.MongoCollection.html.insertMany 使用 Java Reactive Streams 驱动程序 插入以下文档 :

{ item: "journal", qty: 25, tags: ["blank", "red"], size: { h: 14, w: 21, uom: "cm" } }
{ item: "mat", qty: 85, tags: ["gray"], size: { h: 27.9, w: 35.5, uom: "cm" } }
{ item: "mousepad", qty: 25, tags: ["gel", "blue"], size: { h: 19, w: 22.85, uom: "cm" } }

以下示例将三个新文档插入到 inventory 集合中。如果文档未指定 _id 字段,驱动程序会将带有 ObjectId 值的 _id 字段添加到每个文档。请参阅插入行为。

com.mongodb.client.MongoCollection.insertMany 可将 多个 文档 插入到一个集合中。将文档列表传递给该方法。

以下示例将三个新文档插入到 inventory 集合中。如果文档未指定 _id 字段,驱动程序会将带有 ObjectId 值的 _id 字段添加到每个文档。请参阅插入行为。

MongoCollection.insertMany 多个 文档 插入到一个集合中。将文档列表作为参数传递给该方法。

以下示例将三个新文档插入inventory集合。 如果文档未指定_id字段,驾驶员则会向每个文档添加一个 ObjectId 值。 请参阅插入行为。

motor.motor_asyncio.AsyncIOMotorCollection.insert_many可以将多个 文档插入到一个集合中。将可迭代的文档传递给该方法。

以下示例将三个新文档插入 inventory 集合。如果文档未指定 _id 字段,PyMongo 驱动程序会将带有 ObjectId 值的 _id 字段添加到每个文档。请参阅插入行为

Collection.insertMany() 可以在一个集合中插入多个 文档。将文档数组传递给该方法。

以下示例将三个新文档插入 inventory 集合。如果文档未指定 _id 字段,Node.js 驱动程序会将带有 ObjectId 值的 _id 字段添加到每个文档。请参阅 插入行为。

MongoDB\\Collection::insertMany() 可以将多个文档插入到一个集合中。将文档数组传递给该方法。

以下示例将三个新文档插入 inventory 集合。如果文档未指定 _id 字段,PHP 驱动程序会将带有 ObjectId 值的 _id 字段添加到每个文档。请参阅插入行为

pymongo.collection.Collection.insert_many可以将多个 文档插入到一个集合中。将可迭代的文档传递给该方法。

以下示例将三个新文档插入 inventory 集合。如果文档未指定 _id 字段,PyMongo 驱动程序会将带有 ObjectId 值的 _id 字段添加到每个文档。请参阅插入行为

Mongo::Collection#insert_many() 可将多个文档插入到集合。将文档数组传递给该方法。

以下示例将三个新文档插入 inventory 集合。如果文档未指定 _id 字段,Ruby 驱动程序会将带有 ObjectId 值的 _id 字段添加到每个文档。请参阅插入行为。

collection.insertMany() 可以将多个文档插入集合。

以下示例将三个新文档插入到 inventory 集合中。如果文档未指定 _id 字段,Scala 驱动程序会将带有 ObjectId 值的 _id 字段添加到每个文档中。请参阅插入行为。

db.inventory.insertMany([
{ item: "journal", qty: 25, tags: ["blank", "red"], size: { h: 14, w: 21, uom: "cm" } },
{ item: "mat", qty: 85, tags: ["gray"], size: { h: 27.9, w: 35.5, uom: "cm" } },
{ item: "mousepad", qty: 25, tags: ["gel", "blue"], size: { h: 19, w: 22.85, uom: "cm" } }
])
[
{ "item": "canvas", "qty": 100, "size": { "h": 28, "w": 35.5, "uom": "cm" }, "status": "A" },
{ "item": "journal", "qty": 25, "size": { "h": 14, "w": 21, "uom": "cm" }, "status": "A" },
{ "item": "mat", "qty": 85, "size": { "h": 27.9, "w": 35.5, "uom": "cm" }, "status": "A" },
{ "item": "mousepad", "qty": 25, "size": { "h": 19, "w": 22.85, "uom": "cm" }, "status": "P" },
{ "item": "notebook", "qty": 50, "size": { "h": 8.5, "w": 11, "uom": "in" }, "status": "P" },
{ "item": "paper", "qty": 100, "size": { "h": 8.5, "w": 11, "uom": "in" }, "status": "D" },
{ "item": "planner", "qty": 75, "size": { "h": 22.85, "w": 30, "uom": "cm" }, "status": "D" },
{ "item": "postcard", "qty": 45, "size": { "h": 10, "w": 15.25, "uom": "cm" }, "status": "A" },
{ "item": "sketchbook", "qty": 80, "size": { "h": 14, "w": 21, "uom": "cm" }, "status": "A" },
{ "item": "sketch pad", "qty": 95, "size": { "h": 22.85, "w": 30.5, "uom": "cm" }, "status": "A" }
]
Document journal = new Document("item", "journal")
.append("qty", 25)
.append("tags", asList("blank", "red"));
Document journalSize = new Document("h", 14)
.append("w", 21)
.append("uom", "cm");
journal.put("size", journalSize);
Document mat = new Document("item", "mat")
.append("qty", 85)
.append("tags", singletonList("gray"));
Document matSize = new Document("h", 27.9)
.append("w", 35.5)
.append("uom", "cm");
mat.put("size", matSize);
Document mousePad = new Document("item", "mousePad")
.append("qty", 25)
.append("tags", asList("gel", "blue"));
Document mousePadSize = new Document("h", 19)
.append("w", 22.85)
.append("uom", "cm");
mousePad.put("size", mousePadSize);
Publisher<Success> insertManyPublisher = collection.insertMany(asList(journal, mat, mousePad));
Document journal = new Document("item", "journal")
.append("qty", 25)
.append("tags", asList("blank", "red"));
Document journalSize = new Document("h", 14)
.append("w", 21)
.append("uom", "cm");
journal.put("size", journalSize);
Document mat = new Document("item", "mat")
.append("qty", 85)
.append("tags", singletonList("gray"));
Document matSize = new Document("h", 27.9)
.append("w", 35.5)
.append("uom", "cm");
mat.put("size", matSize);
Document mousePad = new Document("item", "mousePad")
.append("qty", 25)
.append("tags", asList("gel", "blue"));
Document mousePadSize = new Document("h", 19)
.append("w", 22.85)
.append("uom", "cm");
mousePad.put("size", mousePadSize);
collection.insertMany(asList(journal, mat, mousePad));
await db.inventory.insert_many(
[
{
"item": "journal",
"qty": 25,
"tags": ["blank", "red"],
"size": {"h": 14, "w": 21, "uom": "cm"},
},
{
"item": "mat",
"qty": 85,
"tags": ["gray"],
"size": {"h": 27.9, "w": 35.5, "uom": "cm"},
},
{
"item": "mousepad",
"qty": 25,
"tags": ["gel", "blue"],
"size": {"h": 19, "w": 22.85, "uom": "cm"},
},
]
)
await db.collection('inventory').insertMany([
{
item: 'journal',
qty: 25,
tags: ['blank', 'red'],
size: { h: 14, w: 21, uom: 'cm' }
},
{
item: 'mat',
qty: 85,
tags: ['gray'],
size: { h: 27.9, w: 35.5, uom: 'cm' }
},
{
item: 'mousepad',
qty: 25,
tags: ['gel', 'blue'],
size: { h: 19, w: 22.85, uom: 'cm' }
}
]);
$insertManyResult = $db->inventory->insertMany([
[
'item' => 'journal',
'qty' => 25,
'tags' => ['blank', 'red'],
'size' => ['h' => 14, 'w' => 21, 'uom' => 'cm'],
],
[
'item' => 'mat',
'qty' => 85,
'tags' => ['gray'],
'size' => ['h' => 27.9, 'w' => 35.5, 'uom' => 'cm'],
],
[
'item' => 'mousepad',
'qty' => 25,
'tags' => ['gel', 'blue'],
'size' => ['h' => 19, 'w' => 22.85, 'uom' => 'cm'],
],
]);
db.inventory.insert_many(
[
{
"item": "journal",
"qty": 25,
"tags": ["blank", "red"],
"size": {"h": 14, "w": 21, "uom": "cm"},
},
{
"item": "mat",
"qty": 85,
"tags": ["gray"],
"size": {"h": 27.9, "w": 35.5, "uom": "cm"},
},
{
"item": "mousepad",
"qty": 25,
"tags": ["gel", "blue"],
"size": {"h": 19, "w": 22.85, "uom": "cm"},
},
]
)

insertMany() 返回一个包含新插入文档的 _id 字段值的文档。有关示例,请参阅参考资料

要检索插入的文档,请查询集合

要查看新插入的文档,请在 MongoDB Compass 查询栏中指定过滤器 {},然后单击 Find 查看您的文档。

mongoc_bulk_operation_insert_with_opts true成功时返回false ,如果传递的参数无效,则返回 。

要检索插入的文档,请使用 mongoc_collection_find_with_opts 查询集合:

要检索插入的文档,请查询集合

要检索插入的文档,请查询集合

com.mongodb.reactivestreams.client.MongoCollection.html.insertMany返回Publisher对象。当订阅者请求数据时,Publisher 会将文档插入到集合中。

要检索插入的文档,请查询集合

要检索插入的文档,请查询集合

MongoCollection.insertMany() 返回一个InsertManyResult 实例。InsertManyResultinsertedIds字段包含插入文档的_id值。

要检索插入的文档,请查询集合

insert_many 返回 pymongo.results.InsertManyResult 的实例,其 inserted_ids 字段是包含每个新插入文档的 _id 的列表。

要检索插入的文档,请查询集合

insertMany() 会返回一个提供 result 的 Promise。result.insertedIds 字段包含一个数组,其中包含每个新插入文档的 _id

要检索插入的文档,请查询集合

成功插入后,insertMany() 方法会返回一个 MongoDB\\InsertManyResult 实例,其 getInsertedIds() 方法会返回每个新插入的文档的 _id

要检索插入的文档,请查询集合

insert_many 返回 pymongo.results.InsertManyResult 的实例,其 inserted_ids 字段是包含每个新插入文档的 _id 的列表。

要检索插入的文档,请查询集合

成功插入后,insert_many() 方法会返回一个 Mongo::BulkWrite::Result 实例,其 inserted_ids 属性是一个包含每个新插入文档的 _id 的列表。

要检索插入的文档,请查询集合

插入成功后,insertMany() 方法会返回一个 Observable,其中带有一个类型参数,指示操作何时完成,或带有 com.mongodb.DuplicateKeyExceptioncom.mongodb.MongoException

要检索插入的文档,请查询集合

db.inventory.find( {} )
Compass 选择集合中的所有文档
FindPublisher<Document> findPublisher = collection.find(new Document());
FindIterable<Document> findIterable = collection.find(new Document());
cursor = db.inventory.find({})
const cursor = db.collection('inventory').find({});
$cursor = $db->inventory->find([]);
cursor = db.inventory.find({})

如果集合当前不存在,则插入操作会创建集合。

在MongoDB中,存储在标准集合中的每个文档都需要一个唯一的_id字段作为主键。如果插入的文档省略了_id 字段,则MongoDB驾驶员会自动为 _id字段生成 ObjectId。

这也适用于通过执行 upsert: true 的更新操作插入的文档。

MongoDB 中的所有写入操作在单个文档级别上都是原子性的。有关 MongoDB 和原子性的更多信息,请参阅原子性和事务。

对于写关注,您可以指定 MongoDB 请求的写操作确认级别。如需了解更多信息,请参阅写关注

提示

后退

增删改查操作

获得技能徽章

免费掌握“CRUD 操作”!

了解详情

在此页面上