登 录
注 册
< 数 据 库
MySQL
ClickHouse
ES
Doris
MongoDB
Redis
其他DB
重新定义OLTP数据库
MongoDB基本操作
复制集机制及原理
MongoDB事务
热门推荐>>>
中台架构
中台建设与架构
Hadoop
源码分析-NN启动(三)
HBase
HBased对接Hive
Linux
Nginx高可用
Python
数据导出工具
Flink
3分钟搭建Flink SQL测试环境
Kafka
Kafka对接Flume
深度学习
卷积神经网络
数据结构与算法
选择合适的算法
MySQL
数据备份恢复
计算机系统
信号量同步线程
Hive
Hive调优参数大全
其他框架
Azkaban Flow1.0与2.0
ClickHouse
表引擎-其他类型
技术成长
最好的职业建议
精选书单
技术成长书单—机器学习
技术资讯
数据在线:计算将成为公共服务
开发工具
IntelliJ IDEA 20年发展回顾(二)
系统工具
Mac命令行工具
虚拟化
内存虚拟化概述
云原生
云原生构建现代化应用
云服务
一文搞懂公有云、私有云...
Java
Spring Boot依赖注入与Runners
Go
Go函数与方法
SQL
SQL模板
当前位置:
首页
>>
MongoDB
>>
MongoDB基本操作
MongoDB基本操作
2023-09-10 15:58:17 星期日 发表于北京 阅读:537
![](/static/images/article_images/1694332229.0090072.jpeg) MongoDB的常用查询语法 #### 存储相关 ```sql //登录 mongo 192.168.1.105:27017/dbname -u username -p xxxxxx // 查看所有MongoDB节点信息,包括主节点和所有从节点 rs.status() use dbname // 查看某个表的状态信息:存储大小、总索引大小 db.tablename.stats() // count() db.tablename.count() // dataSize() 单位:GB 不经过压缩 db.tablename.dataSize() / 1024 / 1024 / 1024 // storageSize() 单位:GB 经过压缩 db.tablename.storageSize() / 1024 / 1024 / 1024 // totalIndexSize() 索引大小,单位GB,经过压缩 db.tablename.totalIndexSize() / 1024 / 1024 / 1024 // 存储+索引大小 单位:GB 经过压缩 db.tablename.totalSize() / 1024 / 1024 / 1024 // 查看某个字段=1的三条数据 db.tablename.find({ "WebsiteID" : 1}).limit(3) // 查看日期大于某个时间点的3行数据 db.tablename.find({ "WebsiteID" : 1, "UpdatedDate":{$gte:new Date("2020-05-01T00:00:00.000Z")}}).limit(3) // 查看查询执行计划,包括是否命中索引,需要读取的文档数,返回的文档数等相关指标 db.tablename.fine({"name": "libins"}).explain(true) ``` #### Find查询 Find是MongoDB中查询数据的基本指令,相当于SQL中的SELECT Find返回的是游标 注意:db表示的是当前数据库。比如MongoDB现在有5个库,分别如下 >mydb1 mydb2 mydb3 mydb4 mydb5 使用use mydb5之后,再执行db.find命令时,db表示的就是mydb5,如果要切换db,直接use mydbx即可。这一点跟MySQL类似。 **Find示例:** ``` db.movies.find({"year": 1975}) // 单条件查询 db.movies.find({"year": 1989, "title": "Batman"}) // 多条件查询 db.movies.find({$and:[{"title": "Batman"},{"category": "action"}]}) // and的另一种形式 db.movies.find({$or:[{"year": 1989}, {"title":Batman"}]}) // 多条件or查询 db.movies.find({"title": /^B/}) // 按正则表达式查找 ``` #### 查询条件对照表 ![](/static/images/article_images/1694332419.249114.jpeg) #### 使用Find搜索子文档 find支持使用“field.sub_field”的形式查询子文档,如下文档: ```json db.fruit.insertOne({ name: "apple", from: { country: "China", province: "Yunnan" } }) ``` 需求是:查找出from子文档下面 country的值是China的文档 ``` 正确写法:db.fruit.find( { "from.country": "China"}) 错误写法:db.fruit.find( {"from" : {country: "China}}) ```