MongoDB——删除和查询文档

248 阅读2分钟

「这是我参与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,即默认显示。

【实例展示】

  1. 查询books集合中author字段的值为Kurt Vonnegut, Jr.的文档。
db.books.find(
    {"author":"Kurt Vonnegut, Jr."}
)
  1. 查询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使用如下:

  1. 查询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()

【实例展示】

  1. 查询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中删除和查询文档的操作,希望对读者有所帮助,如有不正之处,欢迎留言指正。