专栏首页MongoDB中文社区如何实现文档检索(下)

如何实现文档检索(下)

通过查询执行从MongoDB数据库中获取或获取数据的方法。在执行查询操作时,可以使用标准查询,或组合条件从数据库中检索符合条件的特定数据。

MongoDB提供了一个名为db.collection.find()的函数,该函数用于从MongoDB数据库中检索文档。

本次,我们将学习实现文档检索的第二部分内容。

使用Sort()和Limit()排序

查询MongoDB 实例

什么是查询修饰符?

Mongo DB提供了查询修饰符,例如'limit'和'Orders'子句,以在执行查询时提供更大的灵活性。我们将看一下以下查询修饰符。

MongoDB limit查询结果

此修饰符用于限制查询结果集中返回的文档数。下面的例子展示了如何完成此操作。

db.Employee.find().limit(2).forEach(printjson);

代码说明:

上面的代码采用find函数,该函数返回集合中的所有文档,然后使用limit子句将要返回的文档数限制为2。

如果命令执行成功,将显示以下输出结果:

由于有一个限制修饰符,因此最多仅返回2条记录作为基于ObjectId的升序的结果集的一部分。

MongoDB按降序排序

可以根据集合中任何键的升序或降序指定要返回的文档的顺序。看一下这个例子。

db.Employee.find().sort({Employeeid:-1}).forEach(printjson)

代码说明:

上面的代码采用sort函数,该函数返回集合中的所有文档,然后使用修饰符更改返回记录的顺序。这里的-1表示我们要根据Employee id的降序返回文档。

命令执行成功,结果如下:

这里清楚地显示了按Employeeid降序返回的文档。

值为1则按照升序。

源地址:

https://www.guru99.com/mongodb-query-modifications-using-limit-sort.html

MongoDB Count()函数和Remove()函数

聚合的概念是对查询中返回的结果进行计算。例如,假设我们想知道根据触发的查询集合中文档的数量是多少,那么MongoDB提供了count()函数。

让我们看一个例子。

db.Employee.count()

代码说明:

上面的代码执行计数功能。

命令执行成功,将显示以下输出结果如下:

输出清楚地表明集合中有4个文档。

执行修改

MongoDB中的其他两类操作是update和remove语句。

更新操作允许修改现有数据,而删除操作允许从集合中删除数据。

删除文件

在MongoDB中,db.collection.remove()方法用于从集合中删除文档。所有文档都可以从集合中删除,也可以仅从符合特定条件的文档中删除。

如果仅发出remove命令,则所有文档将从集合中删除。

下面的代码示例演示如何从集合中删除特定文档。

db.Employee.remove({Employeeid:22})

代码说明:

上面的代码使用remove函数并指定了在这种情况下要删除Employee id为22的文档的条件。

命令执行成功,显示以下输出结果:

输出将显示已修改1个文档。

源地址:

https://www.guru99.com/mongodb-count-remove-function.html

使用 Update()更新MongoDB文档

基本文档更新

MongoDB提供了update()命令来更新集合的文档。仅仅更新要更新的文档,可以将条件添加到更新语句,以便更新选定的文档。

该命令中的基本参数是需要更新文档的条件,其次是需要执行的修改。

下面是如何完成此操作。

  1. 发出更新命令;
  2. 选择要用于确定需要更新哪个文档的条件。在我们的例子中,我们要更新员工ID为22的文档;
  3. 使用set命令修改字段名称;
  4. 选择要修改的字段名称,并相应地输入新值。
db.Employee.update(
{"Employeeid" : 1},
{$set: { "EmployeeName" : "NewMartin"}});

命令执行成功,输出结果:

结果表明,一条记录符合条件,因此修改了相关字段值。

更新多个值

为了确保在MongoDB中同时更新多个/大量文档,需要使用multi选项,因为默认情况下,一次只能修改一个文档。

以下示例显示了如何更新许多文档。

在此示例中,我们将首先找到Employee ID为“ 1”的文档,并将Employee名称从“ Martin”更改为“ NewMartin”。

  1. 发出更新命令;
  2. 选择要用于确定需要更新哪个文档的条件。在我们的示例中,我们希望更新员工ID为“ 1”的文档;
  3. 选择要修改的字段名称,并相应地输入其新值。
db.Employee.update
(
   {
      Employeeid : 1
   },
   {
      $set :
      {
         "EmployeeName" : "NewMartin"
         "Employeeid" : 22
      }
   }
)

令执行成功,运行“ find”命令来搜索雇员ID为22的文档,则会看到以下如下结果:

清楚的展示了,一条记录符合条件,因此修改了相关字段值。

源地址:

https://www.guru99.com/mongodb-update-document.html

本文分享自微信公众号 - Mongoing中文社区(mongoing-mongoing),作者:译者:徐扬

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-03-31

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Java与MongoDB 4.0多文档事务新特性体验

    MongoDB 4.0增加了对多文档ACID事务的支持。但等等......这是否意味着MongoDB直到现在才支持事务?不,实际上MongoDB已经提供了对单个...

    MongoDB中文社区
  • 使用insert () 在MongoDB中插入数组

    “insert”命令也可以一次将多个文档插入到集合中。下面我们操作如何一次插入多个文档。

    MongoDB中文社区
  • 有坑勿踩(三)——关于数据更新

    数据更新,CRUD中的U,对任何数据库而言都是最基本的操作。看似简单的更新操作中会藏着哪些坑?今天聊一聊这个话题。

    MongoDB中文社区
  • MrDoc 0.5.3发布,开源的Python在线文档系统

    今天(2020年6月13日),MrDoc正式发布了0.5.3版本,距离上次发布新版本已经过去了快一个月的时间。

    州的先生
  • Learning to Rank 小结

    一、学习排序(Learning to Rank) LTR(Learning torank)学习排序是一种监督学习(SupervisedLearnin...

    智能算法
  • 细说RESTful API之文档管理

    规范的接口文档管理方式有助于提高组件协同(如:前后端分离)的开发效率,对于项目的接口说明有全局的管理视角,甚至可以方便地实现对外发布。 完善的文档管理应该包含...

    2Simple
  • 为啥开发的文档能力是核心竞争力之一

    在开发团队里面一般产品的文档能力会比较强,很多开发的文档能力都非常弱,在我看来文档能力是一个程序员核心竞争力之一,文档能力强才能实现能力的快速发展。为什么语文在...

    用户5829239
  • 程序员既要写好代码,又要写好文档

    程序员既要写好代码,又要写好文档 作为一个长期混迹于CSDN社区的人,我对很多拥有高访问量的博主钦佩不已,特别是在参加了CSDN在举办“2014 CSDN博文大...

    用户1289394
  • 在RPA项目中有哪些文档,如何使用这些文档

    RPA项目也同样遵循同样的方式,不同的厂商和公司定义的文档类型也不太相同,多的可能十几种,少的也要几种,具体的遵循方式和使用标准取决于公司内部的使用章程。

    RPA小葵
  • 读不懂英文文档,能写出代码不?

    作为一个开发人员,开发一个新项目,维护一个项目,想要快速的开展工作。最重要的是干什么?是阅读项目文档,没文档看代码。可见我们首要做的事情是看文档看懂文档,编程初...

    程序员互动联盟

扫码关注云+社区

领取腾讯云代金券