「这是我参与2022首次更文挑战的第28天,活动详情查看:2022首次更文挑战」。
前言
大家好,我是程序猿小白 gw_Gw,很高兴能和大家一起学习进步。
以下内容部分来自于网络,如有侵权,请联系我删除,本文仅用于学习交流,不用作任何商业用途。
摘要
本文主要介绍MongoDB数据库的删除文档和查询文档的用法,以及一些注意事项。
如果想要了解插入和更新操作,可点击传送门直达。 MongoDB——插入和更新文档
1. 删除文档
新版本使用 deleteOne() 和 deleteMany() 方法查询文档,remove方法已过时。
- deleteOne() 删除一个文档。
- deleteMany() 删除多个文档。
【实例展示】
//删除该集合的全部文档
db.collection.deleteMany({})
//删除该集合中所有title为A的文档
db.collection.deleteMany({"title":"A"})
//删除一个title为A的文档
db.collection.deleteOne({"title":"A"})
2. 查询文档
我们通过find() 方法来进行查询文档的操作。
【语法格式】
db.collection.find(query, projection)
参数解释:
-
query:查询的条件
-
projection:可选参数,返回结果指定字段显示。默认返回显示所有字段。
格式为:{columnA : 0/1,columnB : 0/1},columnA和columnB表示要返回显示的字段,1表示显示,0表示不显示。主键(_id)默认为1,即默认显示。
【实例展示】
- 查询books集合中author字段的值为Kurt Vonnegut, Jr.的文档。
db.books.find(
{"author":"Kurt Vonnegut, Jr."}
)
- 查询potions集合中ingredients字段为grape的文档,并且只显示name,price和ratings字段。
db.potions.find(
{"ingredients":"grape"},
{"_id":0,"name":1,"price":1,"ratings":1}
)
我们常常以易读的方式查询文档,需要结合pretty()方法。
【实例展示】
db.books.find(
{"author":"Kurt Vonnegut, Jr."}
).pretty()
OR和AND操作
如果想要以多条件查询,我们就可以使用or和and操作符。
AND使用如下:
- 查询books集合中author字段的值为Kurt Vonnegut, Jr.且year为2021的文档
db.books.find(
{"author":"Kurt Vonnegut, Jr.","year":"2021"}
).pretty()
OR使用如下:
db.col.find(
{
$or: [
{key1: value1}, {key2:value2}
]
}
).pretty()
【实例展示】
- 查询books集合中author字段的值为Kurt Vonnegut, Jr.或year为2021的文档
db.books.find(
{
$or:[
{"author":"Kurt Vonnegut, Jr."},
{"year":"2021"}
]
}
).pretty()
也可以将AND和OR连用:
db.books.find(
{"author":"Kurt Vonnegut, Jr.",$or:[{"year":"2021"}]}
).pretty()
如果我们还要查询数组和嵌入式文档这些复杂格式的文档,可以参考下面方式。
数组
通过数组的值来查找。
db.books.find({"arrays":"A"})
对应文档格式:
{
_id:"......",
.....
arrays:["A","B","C"]
}
嵌入文档
通过对应字段.嵌入文档字段。
db.books.find({"joke.title":"A"})
对应文档格式:
{
_id:"......",
.....
"joke":{"title":"A"}
}
小结
以上就是关于MongoDB中删除和查询文档的操作,希望对读者有所帮助,如有不正之处,欢迎留言指正。