MongoDB查询文档

3.5 MongoDB 查询文档

MongoDB 查询文档使用 find() 方法。

find() 方法以非结构化的方式来显示所有文档。find()查询数据的语法格式如下:

db.collection.find(query, projection)[.pretty()]
  • query :可选,使用查询操作符指定查询条件

  • projection :可选,使用投影操作符指定返回的键。查询时返回文档中所有键值, 只需省略该参数即可(默认省略)。

  • .pretty() : 美化查询结果。

  • 除find()外,还有findOne() 方法,它只返回一个文档。

MongoDB 与 RDBMS Where 语句比较

MongoDB与常规的 SQL 数据条件查询类似,通过下表可以更好的理解 MongoDB 的条件语句查询:

| 操作 | 格式 | 范例 | RDBMS中的类似语句 | | --- | --- | --- | --- | | 等于 | {<key>:<value> } | db.col.find({"by":"goudan"}).pretty() | where by = 'goudan' | | 小于 | {<key>:{$lt:<value>}} | db.col.find({"likes":{$lt:50}}).pretty() | where likes < 50 | | 小于或等于 | {<key>:{$lte:<value>}} | db.col.find({"likes":{$lte:50}}).pretty() | where likes <= 50 | | 大于 | {<key>:{$gt:<value>}} | db.col.find({"likes":{$gt:50}}).pretty() | where likes > 50 | | 大于或等于 | {<key>:{$gte:<value>}} | db.col.find({"likes":{$gte:50}}).pretty() | where likes >= 50 | | 不等于 | {<key>:{$ne:<value>}} | db.col.find({"likes":{$ne:50}}).pretty() | where likes != 50 |

MongoDB and条件

MongoDB 的 find() 方法可以传入多个键(key),每个键(key)以逗号隔开,即常规 SQL 的 AND 条件。

语法格式如下:

>db.col.find({key1:value1, key2:value2}).pretty()

MongoDB OR 条件

MongoDB OR 条件语句使用了关键字 $or,语法格式如下:

>db.col.find({$or: [{key1: value1}, {key2:value2}]}
).pretty()

查询案例

-- 查询myTable所有数据
> db.myTable.find()
{ "_id" : ObjectId("62a46dee4c256eb2b320f208"), "id" : 1, "name" : "goudan", "address" : "beijing" }
{ "_id" : ObjectId("62a46e194c256eb2b320f209"), "id" : 2, "name" : "mz", "address" : "beijing" }
{ "_id" : ObjectId("62a46e644c256eb2b320f20a"), "id" : 3, "name" : "sjg", "address" : "beijing" }
{ "_id" : ObjectId("62a46e644c256eb2b320f20b"), "id" : 4, "name" : "haonan", "address" : "jianshazui" }
{ "_id" : ObjectId("62a46eae4c256eb2b320f20c"), "id" : 5, "name" : "rz", "address" : "tangshan" }
​
-- 查询myTable name=sjg的数据
> db.myTable.find({"name":"sjg"})
{ "_id" : ObjectId("62a46e644c256eb2b320f20a"), "id" : 3, "name" : "sjg", "address" : "beijing" }
​
-- 查询myTable name=sjg and address=beijing的数据
> db.myTable.find({"name":"sjg","address":"beijing"})
{ "_id" : ObjectId("62a46e644c256eb2b320f20a"), "id" : 3, "name" : "sjg", "address" : "beijing" }
​
-- 查询myTable name = sjg or address=beijing的数据
> db.myTable.find({$or:[{"name":"sjg"},{"address":"beijing"}]})
{ "_id" : ObjectId("62a46dee4c256eb2b320f208"), "id" : 1, "name" : "goudan", "address" : "beijing" }
{ "_id" : ObjectId("62a46e194c256eb2b320f209"), "id" : 2, "name" : "mz", "address" : "beijing" }
{ "_id" : ObjectId("62a46e644c256eb2b320f20a"), "id" : 3, "name" : "sjg", "address" : "beijing" }
​
-- 查询myTable id > 1 and (name=sjg or address=beijing)的数据
> db.myTable.find({"id":{$gt:1},$or:[{"name":"sjg"},{"address":"beijing"}]})
{ "_id" : ObjectId("62a46e194c256eb2b320f209"), "id" : 2, "name" : "mz", "address" : "beijing" }
{ "_id" : ObjectId("62a46e644c256eb2b320f20a"), "id" : 3, "name" : "sjg", "address" : "beijing" }
​
-- 查询myTable第一条数据
> db.myTable.findOne()
{"_id" : ObjectId("62a46dee4c256eb2b320f208"),"id" : 1,"name" : "goudan","address" : "beijing"
}
​
-- 查询myTable满足name=sjg or address=beijing条件的第一条数据
> db.myTable.findOne({$or:[{"name":"sjg"},{"address":"beijing"}]})
{"_id" : ObjectId("62a46dee4c256eb2b320f208"),"id" : 1,"name" : "goudan","address" : "beijing"
}

Guff_hys_python数据结构,大数据开发学习,python实训项目-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/576967.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大规模和复杂问题挑战——分治思想来应战

分治思想利用了问题的内在结构和性质&#xff0c;使得大规模和复杂的问题能够被有效地解决。具体来说&#xff0c;分治思想的本质是通过问题分解、递归处理和解的合并&#xff0c;将一个复杂问题转化为一系列更简单的子问题&#xff0c;并最终得到原问题的解。 1、分治思想的本…

逻辑运算加法器

前言 逻辑门本质上操作的是单个二进制数&#xff0c;通过高低电压或者有无信号来表示&#xff0c;并且&#xff0c;因为二进制数的原因&#xff0c;一个数字&#xff0c;我们可以通过二进制数来表示&#xff0c;整数可以精确表示&#xff0c;浮点数可以近似表示 本篇文章使用逻…

信息系统定级与等级测评的具体过程

目录 信息系统安全定级流程图 信息系统定级的注意事项 补充内容 信息系统安全等级测评流程图 测评准备阶段 测评机构职责 被测单位职责 方案编制阶段 测评机构职责 被测单位职责 现场测评阶段 测评机构的职责 被测单位职责 分析与报告编制阶段 测评机构职责 被测…

fastadmin点击列表字段复制推广链接

fastadmin点击列表字段复制推广链接 要实现点击复制的功能需要引入外部js分享 利用clipboardjs实现复制功能 下载了之后需要引入外部js 1:把需要的js放在这个路径下 2.去require-frontend.js文件进行配置 3.在使用的js中引入外部js 实际调用

SpringCloudAlibaba Seata在Openfeign跨节点环境出现全局事务Xid失效原因底层探究

原创/朱季谦 曾经在SpringCloudAlibaba的Seata分布式事务搭建过程中&#xff0c;跨节点通过openfeign调用不同服务时&#xff0c;发现全局事务XID在当前节点也就是TM处&#xff0c;是正常能通过RootContext.getXID()获取到分布式全局事务XID的&#xff0c;但在下游节点就出现获…

【数据库系统概论】第3章-关系数据库标准语言SQL(3)

文章目录 3.5 数据更新3.5.1 插入数据3.5.2 修改数据3.5.3 删除数据 3.6 空值的处理3.7 视图3.7.1 建立视图3.7.2 查询视图3.7.3 更新视图3.7.4 视图的作用 3.5 数据更新 3.5.1 插入数据 注意&#xff1a;插入数据时要满足表或者列的约束条件&#xff0c;否则插入失败&#x…

解决IOS transform rotate后文字无法显示,backface-visibility导致@click事件失效

问题一&#xff1a;IOS transform rotate后文字无法显示 网上搜到可以用backface-visibility:hidden来解决&#xff0c;这样做文字是出来了&#xff0c;但是click事件无效了。 问题二&#xff1a;backface-visibility导致click事件失效 在Vue中使用backface-visibility和cli…

springboot 多节点部署服务

1、多节点启动 节点1&#xff1a;120.79.160.152:8082/ 节点2&#xff1a;120.79.160.153:8082 2、配置nginx集群访问 upstream lbs { ​ server 120.79.160.152:8082/; server 120.79.160.153:8082; ​ } ​ ​ …

【Qt-Timer】

Qt编程指南 ■ QTimeEvent■ Qtimer■ QDateTimeEdit■ QDateTime■■ ■ QTimeEvent 1.启动定时器 定时器ID startTimer (时间间隔); int idt startTimer (250); 每隔指定的时间间隔&#xff0c;触发一次定时器事件。 2.定时器事件处理 virtual void timerEvent (QTimeEvent…

《Nature》预测 2024 科技大事:GPT-5预计明年发布等

《Nature》杂志近日盘点了 2024 年值得关注的科学事件&#xff0c;包括 GPT-5 与新一代 AlphaFold、超算 Jupiter、探索月球任务、生产「超级蚊子」、朝向星辰大海、试验下一代新冠疫苗、照亮暗物质、意识之辩第二回合、应对气候变化。 今年以来&#xff0c;以 ChatGPT 为代表…

CentOS 7 用户必看SQLite 升级指南:轻松将旧版 3.7.17 升级至3.41.2详细教程

0.背景 编写此文是因为在 Linux 上跑项目时报错&#xff1a; sqlite3.NotSupportedError: deterministicTrue requires SQLite 3.8.3 or highe&#xff08;此时已经安装了 python3&#xff09;。sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) near "(&q…

新/旧版本 QT 下载,全攻略【省资源下载币专用】

看到好多朋友找不到指定版本的QT下载路径&#xff0c;特此更新一篇新/旧版本 QT 下载攻略 收藏一下吧&#xff0c;需要的时候方便查找&#xff0c;能为你省下好多资源下载币。 通过图示可以看出&#xff0c;新旧版本的界限并没有那么明晰&#xff0c;如果你需要的版本两个链接…

Podman配置mongodb

文章目录 查询镜像拉取镜像查看镜像运行容器创建root用户 查询镜像 podman search mongo拉取镜像 podman pull docker.io/library/mongo查看镜像 podman images运行容器 podman run -d -p 27017:27017 --namemongodb-test docker.io/library/mongo创建root用户 podman exe…

AI Earth平台简介

AI Earth地球科学云平台由达摩院-视觉技术实验室打造&#xff0c;基于地球科学智能计算分析方面的创新研究&#xff0c;致力于解决地球科学领域基础性、前沿性、业务性问题&#xff0c;目标成为国内一流的地球科学云计算平台。&#xff08;摘自官网&#xff09; 下面&#xff…

网站数据统计基础:PV、UV与IP的解读

在数字时代&#xff0c;了解和分析网站流量至关重要。无论是新手网站所有者还是资深市场分析师&#xff0c;掌握如何解读网站的PV、UV和IP等指标对于评估网站表现、优化用户体验和制定有效市场策略都是必不可少的。以下是对这三个关键指标的详细介绍。 文章目录 1. PV&#xff…

网页乱码问题(edge浏览器)

网页乱码问题&#xff08;edge&#xff09; 文章目录 网页乱码问题&#xff08;edge&#xff09;前言一、网页乱码问题1.是什么&#xff1a;&#xff08;描述&#xff09;2.解决方法&#xff1a;&#xff08;针对edge浏览器&#xff09;&#xff08;1&#xff09;下载charset插…

K8S从harbor中拉取镜像的规则imagePullPolicy

1、参数 配制参数为&#xff1a;imagePullPolicy&#xff1a; 可以选择的值有&#xff1a;Always&#xff0c;IfNotPresent&#xff0c;Never 2、参数结果 如果pod的镜像拉取策略为imagePullPolicy: Always&#xff1a;当harbor不能运行后&#xff0c;pod会一直从harbor上拉…

k8s 组件

k8s: kubernets:8个字母省略&#xff0c;就是k8s. 自动部署&#xff0c;自动扩展和管理容器化的应用程序的一个开源系统。 k8s是负责自动化运维管理多个容器化程序的集群&#xff0c;是一个功能强大的容器编排工具。 以分布式和集群化的方式进行容器管理。 1.20面试版本 …

[PyTorch][chapter 8][李宏毅深度学习][DNN 训练技巧]

前言&#xff1a; DNN 是神经网络的里面基础核心模型之一.这里面结合DNN 介绍一下如何解决 深度学习里面过拟合,欠拟合问题 目录&#xff1a; DNN 训练常见问题 过拟合处理 欠拟合处理 keras 项目 一 DNN 训练常见问题 我们在深度学习网络训练的时候经常会遇到下面…

Oracle初始化参数修改后,是否需要重启才能生效

可以查看 v$parameter或v$parameter2动态性能视图的ISSYS_MODIFIABLE列。此列指示是否可以使用 ALTER SYSTEM 更改参数以及更改何时生效&#xff1a; IMMEDIATE - 无论用于启动实例的参数文件的类型如何&#xff0c;都可以使用 ALTER SYSTEM 更改参数。 更改立即生效。DEFERRE…