MongoDB 数据库基础 之 CRUD操作中的插入范例

1. 简介

MongoDB是一个开源、高性能、无模式(no-sql)文档数据库。在MongoDB中,数据是以文档(document)的形式存储的,可以存储各种类型的数据,比如字符串、数字、数组等,还支持嵌套式结构的存储方式,这使得MongoDB成为了一种非常灵活和强大的数据库。

1.1 CRUD操作

在MongoDB中,我们可以对数据进行CRUD操作,即增加(Create)、读取(Retrieve)、更新(Update)和删除(Delete)。这些操作很容易理解,下面我们将结合一个实例详细介绍MongoDB中的插入操作。

2. 插入数据

2.1 插入单个文档

在MongoDB中,我们可以使用insertOne()方法向集合中插入单个文档。

语法:

db.collection.insertOne(

{ field1: value1, field2: value2, ... }

)

其中,db.collection表示要插入文档的集合名称,{}里面是要插入的文档内容,格式为键值对形式。

比如,我们要向一个叫做users的集合中插入一条数据,内容如下:

{

name: "Bob",

age: 25,

email: "bob@example.com"

}

插入操作如下:

db.users.insertOne(

{

name: "Bob",

age: 25,

email: "bob@example.com"

}

)

如果数据插入成功,返回结果如下:

{

"acknowledged" : true,

"insertedId" : ObjectId("5f4b68837c7111bb9cdca879")

}

其中,acknowledged为真表示操作成功,insertedId表示插入的文档的唯一标识。

2.2 插入多个文档

在MongoDB中,我们也可以使用insertMany()方法向一个集合中插入多个文档。

语法:

db.collection.insertMany(

[

{ field1: value1, field2: value2, ... },

{ field1: value1, field2: value2, ... },

...

]

)

其中,db.collection表示要插入文档的集合名称,[]里面可以包含一个或多个文档,每个文档的格式为键值对形式。

比如,我们要向一个叫做users的集合中插入两条数据,内容分别如下:

{

name: "Alice",

age: 30,

email: "alice@example.com"

},

{

name: "David",

age: 35,

email: "david@example.com"

}

插入操作如下:

db.users.insertMany(

[

{

name: "Alice",

age: 30,

email: "alice@example.com"

},

{

name: "David",

age: 35,

email: "david@example.com"

}

]

)

如果数据插入成功,返回结果如下:

{

"acknowledged" : true,

"insertedIds" : [

ObjectId("5f4b69027c7111bb9cdca87a"),

ObjectId("5f4b69027c7111bb9cdca87b")

]

}

其中,acknowledged为真表示操作成功,insertedIds表示插入的每个文档的唯一标识。

2.3 插入验证

MongoDB提供了插入验证的功能,即在插入文档时,如果文档不符合规定的格式,将会抛出异常。在实际应用中,这个功能可以帮助我们避免一些在写入数据时出现的错误。

比如,我们要向一个叫做users的集合中插入一条数据,但是我们限制了文档中必须包含name和age两个字段:

db.createCollection("users", {

validator: {

$and: [

{ name: { $type: "string" } },

{ age: { $type: "int" } }

]

}

})

插入操作如下,其中缺少了age字段:

db.users.insertOne(

{

name: "Bob",

email: "bob@example.com"

}

)

插入验证结果如下:

WriteError({

"index" : 0,

"code" : 121,

"errmsg" : "Document failed validation",

"op" : {

"_id" : ObjectId("5f4b6d3d2a583a44302bb8ff"),

"name" : "Bob",

"email" : "bob@example.com"

}

})

可见,插入操作失败,抛出了异常,提示文档验证失败。

3. 总结

本文介绍了MongoDB中的插入操作。我们学习了如何向一个集合中插入单个文档和多个文档,并且了解了插入验证的功能。在实际编程中,我们需要根据不同的需求和情况进行灵活使用,这将极大地提高我们的编程效率。

数据库标签