【sql】MongoDB 查询 高级用法

【sql】MongoDB 查询 高级用法

一、基本查询指定字段

复制代码
db.getCollection('students').find({}, {name: 1, score: 1})

二、指定字段别名

复制代码
db.getCollection('students').find({}, {"name":1, "score":1, "grade":"$grade.grade"})

这里将grade.grade字段的别名设置为grade。

三、限制子文档中的字段

在MongoDB中,子文档会被完整返回,包含文档中的所有字段。如果只需要返回子文档中的某些字段,可以使用elemMatch和 projection。

$elemMatch用于限制返回的数组元素,例如:

复制代码
db.getCollection('students').find({}, {scores: {$elemMatch: {type: "final", score: {$gt: 80}}}})

这里只返回scores数组中type为final且score大于80的元素。

$projection则可以限制返回的子文档中的字段:

复制代码
db.getCollection('students').find({}, {"name":1, "scores": {$elemMatch: {type: "final", score: {$gt: 80}}}}, {"scores.type": 0})

这里排除了返回的scores数组元素中的type字段。

四、排除指定字段

在MongoDB查询中,可以使用0将要排除的字段置为0。例如:

复制代码
db.getCollection('students').find({}, {"score": 0})

这里排除了返回的文档中的score字段。

相关推荐
吕源林几秒前
mysql慢查询如何自动捕获_配置slow_query_log与慢查询分析工具
jvm·数据库·python
m0_640309303 分钟前
Symfony7新特性全解析:性能提升40%!
jvm·数据库·python
Polar__Star3 分钟前
CSS如何解决CSS引入后的样式覆盖_理解优先级原则避免重写.txt
jvm·数据库·python
Polar__Star4 分钟前
uni-app怎么做横向滚动导航 uni-app滚动菜单Tab实现教程【代码】
jvm·数据库·python
刘晨鑫14 分钟前
NoSQL之Redis配置与优化
数据库·redis·nosql
m0_493934538 分钟前
HTML怎么创建文章目录锚点_HTML h2-h3自动生成导航【方法】
jvm·数据库·python
2301_8135995510 分钟前
uni-app怎么做横向滚动导航 uni-app滚动菜单Tab实现教程【代码】
jvm·数据库·python
Wyawsl12 分钟前
NoSQL之Redis配置与优化
数据库·redis·nosql
indexsunny12 分钟前
互联网大厂Java面试实战:基于微服务与云原生的电商场景问答解析
java·数据库·spring boot·docker·微服务·云原生·kubernetes
m0_6784854514 分钟前
如何在保留功能逻辑的前提下隐藏网页菜单项(CSS 隐藏技巧).txt
jvm·数据库·python