MongoDBのCRUD——MongoDB的CRUD操作
写在前面
- <database>数据库
- <collection>集合
- <document>文档
集合<collection>与数据库<database>都不需要手动创建,当我们创建文档时,如果文档所在的集合或数据库不存在时会自动创建数据库或集合。\
基本操作:
show databases/collections/documents //查看数据库/集合/文档
use <database>/<collection>/<document>进入指定数据库/集合/文档
正文 CRUD操作
首先 use <database>
1.插入
db.<collection>.insert( <document> )
——含义为向 collection 集合中插入一个对象格式的document文档
示例:
use test
插入一个:
db.ttest.insert({"tname": "testOne", "ttitle": "titleOne"})\
插入多个:
db.ttest.insert([
{"tname": "testTwo", "ttitle": "titleTwo"},
{"tname": "testThree", "ttitle": "titleThree"},
{"tname": "testFour", "ttitle": "titleFour"}
])
此外,为了代码的可读性更高,insert() 操作还有 insertOne()以及insertMany(),分别对应insert()上述操作中一个与多个的操作。
2.查询
db.<collection>.find()
——含义为在 collection 集合中查询所有 符合条件的文档
示例:
db.ttest.find({"title": "titleOne"})
即在ttest中查询所以满足“title”为“titleOne”的文档,其返回结果为数组,所以可以有下面这种查询操作:
db.ttest.find({"title": "titleOne"})[0]
同样,find()也有一个兄弟——findOne()。
因为find()返回数组,所以我们此处可以对其返回结果进行一个count()或length()操作,其操作结果相同。
3.修改
db.<collection>.update( 查询条件, 新对象)
在此处,update会用新对象替换查询条件所查询到的旧对象。如果只替换部分属性,则u需要相关操作符:
- $set 修改某些属性
- 示例:
db.inventory.updateOne(
{ item: "paper" },
{
$set: { "size.uom": "cm", status: "P" },
$currentDate: { lastModified: true }
}
)
- $unset 删除某些属性
- 示例:
db.inventory.updateOne(
{ item: "paper" },
{
$unset: { "size.uom": "cm", status: "P" },
$currentDate: { lastModified: true }
}
)
同样,update()也有兄弟updateOne()和updateMany(),在update()中,默认只修改一个,只有multi为true时,修改多个
4.删除
- db.collection.remove()
- db.collection.deleteMany()
- db.collection.deleteOne()
不多说了,直接上案例:
db.collection.remove(
<query>,{
justOne: <boolean>,
writeConcern: <document>,
collation: <document> }
)
db.collection.deleteOne(
<filter>,{
writeConcern: <document>,
collation: <document>}
)
db.collection.deleteMany(
<filter>,{
writeConcern: <document>,
collation: <document>}
)
以上关于MongoDB的CRUD就到这里。