📅  最后修改于: 2020-11-23 01:15:02             🧑  作者: Mango
在MongoDB中,db.collection.insert()方法用于将新文档添加或插入到数据库的集合中。
增补
同样有两种方法“ 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本身生成。它可能与所示的有所不同。
如果要在集合中插入多个文档,则必须将文档数组传递给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()
在其最新版本的MongoDB(MongoDB 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"
}
);
在批量对象上调用execute()方法以执行列表中的操作。
bulk.execute();
成功插入文档后,此方法将返回BulkWriteResult对象及其状态。
BulkWriteResult({
"writeErrors" : [ ],
"writeConcernErrors" : [ ],
"nInserted" : 1,
"nUpserted" : 0,
"nMatched" : 0,
"nModified" : 0,
"nRemoved" : 0,
"upserted" : [ ]
})
在这里,nInserted字段指定插入的文档数。如果操作期间发生任何错误,则BulkWriteResult将指定该错误。