MongoDB插入数据通常有3种方法,它们分别是使用insert()函数,使用save()函数以及使用bulkWrite()函数。下面我们将为大家详细讲解这3种方法以及示例说明。
insert()函数插入数据
insert()函数是 MongoDB 中最基本和常见的插入方法之一。下面是insert()函数的语法和参数:
db.collection.insert({
"name":"John",
"age":30,
"email":"john@example.com"
})
其中,db.collection
代表要插入数据的集合;{...}
则是要插入的数据,数据是以键值对的方式表示的。
下面是一个简单的示例,演示如何使用insert()函数插入一条数据到 mycollection 集合中:
> use mydatabase
switched to db mydatabase
> db.mycollection.insert({
... "name":"Tom",
... "age":25,
... "email":"tom@example.com"
... })
WriteResult({ "nInserted" : 1 })
其中,我们先使用 use 命令选择了 mydatabase 数据库,然后在 mycollection 集合中插入了一条数据。insert()函数会返回WriteResult对象,对象中包含了插入操作的结果信息。在本例中,因为插入成功了一条数据,所以结果信息为 {"nInserted": 1}
。如果插入失败,则会返回相应的错误信息。
save()函数插入数据
save()函数也是一个常用的插入方法。该方法首先会查找是否存在有符合查询条件的数据,若存在则会更新该条数据,否则则会插入一条新的数据。下面是save()函数的语法和参数:
db.collection.save({
"name":"John",
"age":30,
"email":"john@example.com"
})
其中,db.collection
代表要插入数据的集合;{...}
则是要插入/更新的数据,数据是以键值对的方式表示的。
下面是一个简单的示例,演示如何使用save()函数插入一条数据到 mycollection 集合中:
> use mydatabase
switched to db mydatabase
> db.mycollection.save({
... "name":"Tom",
... "age":25,
... "email":"tom@example.com"
... })
WriteResult({ "nInserted" : 1 })
在本例中,save()函数会将要插入的数据与已经存在的数据进行比较,由于 mydatabase.mycollection 中没有 name 为 Tom 的数据,所以 save() 函数会将新的数据插入到集合中,同时返回 {"nInserted": 1}
。
bulkWrite()函数插入数据
最后一个常用的插入方法是 bulkWrite() 函数,该方法可以一次性插入多条数据,并且支持批量操作。下面是bulkWrite()函数的语法和参数:
db.collection.bulkWrite([
{ insertOne : { "name" : "John", "age" : 30, "email" : "john@example.com" } },
{ insertOne : { "name" : "Tom", "age" : 25, "email" : "tom@example.com" } }
])
其中,db.collection
代表要插入数据的集合;[...]
中的数据是要插入的数据,数据是以insertOne对象的方式表示的。
下面是一个简单的示例,演示如何使用bulkWrite()函数插入多条数据到 mycollection 集合中:
> use mydatabase
switched to db mydatabase
> db.mycollection.bulkWrite([
... { insertOne : { "name" : "John", "age" : 30, "email" : "john@example.com" } },
... { insertOne : { "name" : "Tom", "age" : 25, "email" : "tom@example.com" } }
... ])
{
"acknowledged" : true,
"insertedIds" : [
ObjectId("611fe142cc5a9d80b9a1c929"),
ObjectId("611fe142cc5a9d80b9a1c92a")
]
}
在本例中,bulkWrite()函数会一次性插入两条数据,同时返回插入的结果信息。这里需要注意的是,bulkWrite()函数中的 insertOne 对象表示插入一条数据,如果要插入多条数据,需要在 [...]
中添加相应的 insertOne 对象即可。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:MongoDB插入数据的3种方法 - Python技术站