3.Mongodb的文档插入

插入操作操作是Mongodb中添加数据的基本方法,这用主要有两种方法进行插入:

  • insertOne:这个是对集合进行单条数据插入
  • insertMany:这个是对集合进行多条数据进行插入
##单条插入
>
db.one.insertOne({"name":"Oner"}) { "acknowledged" : true, "insertedId" : ObjectId("62513012f4a74899d0aa416e") }
##这也是一个单条插入
>
db.one.insertOne({"name":"second",age:20}) { "acknowledged" : true, "insertedId" : ObjectId("625130f9f4a74899d0aa4170") } > > db.one.find(); { "_id" : ObjectId("62513012f4a74899d0aa416e"), "name" : "Oner" } { "_id" : ObjectId("625130b1f4a74899d0aa416f"), "name" : "zero", "age" : 20 } { "_id" : ObjectId("625130f9f4a74899d0aa4170"), "name" : "second", "age" : 20 } >

从上面两个单条插入语句可以看出,集合中的每个文档(行)可以有属性(字段)不同,这个和关系型数据有根本的区别

再来看看多条插入

> db.one1.insertMany([{"name":"one"},{"name":"two"},{"name":"three"}])
{
    "acknowledged" : true,
    "insertedIds" : [
        ObjectId("62513228f4a74899d0aa4171"),
        ObjectId("62513228f4a74899d0aa4172"),
        ObjectId("62513228f4a74899d0aa4173")
    ]
}
> db.one1.find();
{ "_id" : ObjectId("62513228f4a74899d0aa4171"), "name" : "one" }
{ "_id" : ObjectId("62513228f4a74899d0aa4172"), "name" : "two" }
{ "_id" : ObjectId("62513228f4a74899d0aa4173"), "name" : "three" }

上面的多条插入使用了数组方式,挺有意思的。。。

这里多条数据插入(insertMany)可以很快地提高插入速度。。。如果要将多个文档插入单个集合中,那么insertMany将非常有用。。。

这里补充一个很重要的知识点就是多个文档进行插入时,如果中途某个文档发生了某种类型的错误,那么接下来会发生什么取决于所选择的是有序操作还是无序操作。。。

这里就可以执行insertMany的第二个参数。将选项文档中的"ordered"键指定为true,可以确保按照有序操作,指定为false则允许mongdb重新排列插入顺序以提高性能。如果没有特别指定,则默认是有序插入。对于有序插入,插入顺序由传递给insertMany的数据组进行定义。如果一个文档产生了插入错误,则数组中在此之后的文档都将不会被插入到集合中。对于无序插入,Mongodb将尝试插入所有文档,而不管某些插入是否产生错误。。。

 

posted on 2022-04-11 20:51  太白金星有点烦  阅读(191)  评论(0)    收藏  举报

导航