MongoDB 插入文档

MongoDB 插入文档

在MongoDB中,使用 db.collection.insert() 方法向数据库的集合中添加或插入新的文档。

Upsert

还有两个方法”db.collection.update()”和”db.collection.save()”也可以用于相同的目的。这些方法通过一种叫做upsert的操作来添加新的文档。

upsert是一种操作,如果要修改的文档不存在,则执行更新现有文档或插入新文档的操作。

语法

>db.COLLECTION_NAME.insert(document)

让我们举个示例来演示如何将文档插入到集合中。在这个示例中,我们将一个文档插入到名为javatpoint的集合中。 如果集合当前不存在,这个操作会自动创建一个集合。

示例

db.javatpoint.insert(
   {
     course: "java",
     details: {
        duration: "6 months",
        Trainer: "Sonoo jaiswal"
     },
     Batch: [ { size: "Small", qty: 15 }, { size: "Medium", qty: 25 } ],
     category: "Programming language"
   }
)

成功插入文档后,此操作将返回一个带有其状态的WriteResult对象。

输出:

WriteResult({ "nInserted" : 1 })

这里的 nInserted 字段指定了插入的文档数量。如果发生错误, WriteResult 将指定错误信息。

检查插入的文档

如果插入成功,可以通过以下查询查看插入的文档。

>db.javatpoint.find()

您将会得到返回的插入文档。

输出:

{ "_id" : ObjectId("56482d3e27e53d2dbc93cef8"), "course" : "java", "details" : 
{ "duration" : "6 months", "Trainer" : "Sonoo jaiswal" }, "Batch" : 
[ {"size" : "Small", "qty" : 15 }, { "size" : "Medium", "qty" : 25 } ],
 "category" : "Programming language" }

注意: 这里的ObjectId值是由MongoDB自动生成的。它可能与显示的不同。

MongoDB插入多个文档

如果您想在集合中插入多个文档,您必须将一个文档数组传递给db.collection.insert()方法。

创建一个文档数组

定义一个名为Allcourses的变量,它持有一个要插入的文档数组。

var Allcourses =
    [
      {
        Course: "Java",
        details: { Duration: "6 months", Trainer: "Sonoo Jaiswal" },
        Batch: [ { size: "Medium", qty: 25 } ],
        category: "Programming Language"
      },
      {
        Course: ".Net",
        details: { Duration: "6 months", Trainer: "Prashant Verma" },
        Batch: [ { size: "Small", qty: 5 }, { size: "Medium", qty: 10 }, ],
        category: "Programming Language"
      },
      {
        Course: "Web Designing",
        details: { Duration: "3 months", Trainer: "Rashmi Desai" },
        Batch: [ { size: "Small", qty: 5 }, { size: "Large", qty: 10 } ],
        category: "Programming Language"
      }
    ];

插入文档

将这个Allcourses数组传递给db.collection.insert()方法以执行批量插入。

> db.javatpoint.insert( Allcourses );

插入文档成功后,将返回一个具有状态的BulkWriteResult对象。

BulkWriteResult({
   "writeErrors" : [ ],
   "writeConcernErrors" : [ ],
   "nInserted" : 3,
   "nUpserted" : 0,
   "nMatched" : 0,
   "nModified" : 0,
   "nRemoved" : 0,
   "upserted" : [ ]
})

注意: 在这里,nInserted字段指定了插入的文档数。如果在操作过程中出现任何错误, BulkWriteResult 将指定该错误。

您可以使用以下查询来检查插入的文档:

>db.javatpoint.find()

一次性插入多个文档

在最新版本的MongoDBMongoDB 2.6)中,提供了一个Bulk() API,可以用于执行批量写入操作。

您应该按照以下步骤将一组文档插入MongoDB集合中。

初始化批量操作构建器

首先,为集合javatpoint初始化一个批量操作构建器。

var bulk = db.javatpoint.initializeUnorderedBulkOp();

该操作返回一个维护要执行操作列表的非顺序操作构建器。

向批量对象添加插入操作

bulk.insert(
   {
     course: "java",
     details: {
        duration: "6 months",
        Trainer: "Sonoo jaiswal"
     },
     Batch: [ { size: "Small", qty: 15 }, { size: "Medium", qty: 25 } ],
     category: "Programming language"
   }
);

执行批量操作

在列表中调用bulk对象的execute()方法以执行操作。

bulk.execute();

成功插入文档后,此方法将返回一个 BulkWriteResult 对象,其中包含其状态。

BulkWriteResult({
   "writeErrors" : [ ],
   "writeConcernErrors" : [ ],
   "nInserted" : 1,
   "nUpserted" : 0,
   "nMatched" : 0,
   "nModified" : 0,
   "nRemoved" : 0,
   "upserted" : [ ]
})

在这里,nInserted字段指定了插入的文档数量。如果在操作过程中出现任何错误, BulkWriteResult 将指定该错误。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程