MongoDB 插入文档
 
 
 在MongoDB中,
  db.collection.insert()方法用于将新文档添加或插入到您的集合中数据库。 
 
 
 更新 
 
 还有两种方法" db.collection.update()"方法和" db.collection.save()"方法用于相同的目的。这些方法通过称为upsert的操作添加新文档。
 
  Upsert是一种操作,该操作执行现有文档的更新或如果不存在要修改的文档,则执行新文档的插入。 
 
 
 语法 
 
 
  
  >db.COLLECTION_NAME.insert(document)
 
   
  
 让我们以一个示例来演示如何将文档插入到集合中。在此示例中,我们将文档插入名为lidihuo的集合中。如果该集合当前不存在,则此操作将自动创建一个集合。
 
示例
 
 
  
  db.lidihuo.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 将指定错误信息。 
 
检查插入的文档
 
 如果插入成功,则可以通过以下查询查看插入的文档。 
 
 
 您将获得插入的文档作为回报。
 
 
 输出:  
 
 
  
  { "_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.lidihuo.insert( Allcourses );
 
   
  
 成功插入文档后,这将返回状态为BulkWriteResult的对象。
 
 
  
  BulkWriteResult({
   "writeErrors" : [ ],
   "writeConcernErrors" : [ ],
   "nInserted" : 3,
   "nUpserted" : 0,
   "nMatched" : 0,
   "nModified" : 0,
   "nRemoved" : 0,
   "upserted" : [ ]
}) 
   
  
 
 注意: 在这里,nInserted字段指定插入的文档数。如果操作过程中发生任何错误,
  BulkWriteResult 将指定该错误。 
 
 您可以使用以下查询来检查插入的文档: 
 
 
使用Bulk插入多个文档
 
 在其最新版本的MongoDB(MongoDB 2.6)中,提供了Bulk()API,可用于批量执行多个写入操作。 
 
 您应该按照以下步骤将一组文档插入MongoDB集合中。 
 
初始化批量操作构建器
 
 首先为集合lidihuo初始化批量操作构建器。
 
 
  
  var bulk = db.lidihuo.initializeUnorderedBulkOp();
 
   
  
 此操作返回一个无序操作构建器,该构建器维护要执行的操作的列表。 
 
向大对象添加插入操作
 
  
   
   bulk.insert(
   {
     course: "java",
     details: {
        duration: "6 months",
        Trainer: "Sonoo jaiswal"
     },
     Batch: [ { size: "Small", qty: 15 }, { size: "Medium", qty: 25 } ],
     category: "Programming language"
   }
); 
    
   
 执行批量操作
 
 
  在批量对象上调用execute()方法以执行列表中的操作。 
 
 
  
 
  成功插入文档后,此方法将返回一个
   BulkWriteResult 对象及其状态。 
 
 
  
   
   BulkWriteResult({
   "writeErrors" : [ ],
   "writeConcernErrors" : [ ],
   "nInserted" : 1,
   "nUpserted" : 0,
   "nMatched" : 0,
   "nModified" : 0,
   "nRemoved" : 0,
   "upserted" : [ ]
}) 
    
   
 
  此处nInserted字段指定插入的文档数。如果操作过程中发生任何错误,
   BulkWriteResult 将指定该错误。