文档的基本查询

简介: 本文介绍了MongoDB中查询文档的基本操作。通过`find()`和`findOne()`方法可实现全集合查询及条件查询,如按`userid`筛选;支持投影查询,指定返回字段,控制是否显示`_id`,灵活获取所需数据。

(1)查询所有
如果我们要查询spit集合的所有文档,我们输入以下命令
db.comment.find()

db.comment.find({})
这里你会发现每条文档会有一个叫_id的字段,这个相当于我们原来关系数据库中表的主键,当你在插入文档记录时没有指定该字段, MongoDB会自动创建,其类型是ObjectID类型。
如果我们在插入文档记录时指定该字段也可以,其类型可以是ObjectID类型,也可以是MongoDB支持的任意类型。
如果我想按一定条件来查询,比如我想查询userid为1003的记录,怎么办?很简单!只 要在find()中添加参数即可,参数也是json格式,如下:
db.comment.find({userid:'1003'})
如果你只需要返回符合条件的第一条数据,我们可以使用findOne命令来实现,语法和find一样。如:查询用户编号是1003的记录,但只最多返回符合条件的第一条记录:
db.comment.findOne({userid:'1003'})
(2)投影查询(Projection Query):
如果要查询结果返回部分字段,则需要使用投影查询(不显示所有字段,只显示指定的字段)。如:查询结果只显示 _id、userid、nickname :
db.comment.find({userid:"1003"},{userid:1,nickname:1})
{ "_id" : "4", "userid" : "1003", "nickname" : "凯撒" }
{ "_id" : "5", "userid" : "1003", "nickname" : "凯撒" }
默认 _id 会显示。如:查询结果只显示 、userid、nickname ,不显示 _id :
db.comment.find({userid:"1003"},{userid:1,nickname:1,_id:0})
{ "userid" : "1003", "nickname" : "凯撒" }
{ "userid" : "1003", "nickname" : "凯撒" }
再例如:查询所有数据,但只显示 _id、userid、nickname :
db.comment.find({},{userid:1,nickname:1})

相关文章
|
3月前
|
XML Java 数据格式
@Configuration
被@Configuration标注的类会被Spring容器识别为配置类,等同于XML配置文件。通过@Bean可注册Bean实例,配合AnnotationConfigApplicationContext可启动IOC容器并加载所有Bean,包括配置类自身。
|
3月前
|
XML Java 数据格式
Spring Boot是什么
Spring Boot 于2013年启动,旨在简化Spring应用开发。它通过自动配置和内嵌服务器,减少XML配置,实现开箱即用,提升开发效率,是Spring生态中不可或缺的快速开发利器。
|
3月前
|
SQL 关系型数据库 Java
分页
本文介绍了五种分页实现方式:MyBatis自带RowBounds内存分页、PageHelper插件分页、原生SQL分页、数组分页(查全量后subList)及拦截器分页。前两者属逻辑分页,数据全加载至内存,小数据量高效但大数量易溢出;后三者为物理分页,通过SQL或拦截器实现真实分页,适用于大数据量场景。推荐优先使用物理分页以提升性能与稳定性。(238字)
|
3月前
|
监控 Java API
Spring Boot中的切面AOP处理
AOP(面向切面编程)通过分离关注点,将核心业务与辅助逻辑解耦。Spring Boot 中通过@Aspect、@Pointcut等注解实现AOP,可便捷地进行日志记录、性能监控、异常处理等操作,提升代码模块化与可维护性。(238字)
|
3月前
|
安全 小程序 JavaScript
OAuth2.0四种授权模式
OAuth2四种授权模式简介:授权码模式最安全,适用于第三方登录;简化模式无授权码,token直接返回,适合无后端场景;密码模式需用户共享账号信息,仅限高度信任服务;客户端模式为服务间调用,无需用户参与。
|
10月前
|
小程序 数据安全/隐私保护
二维码也能做业务介绍?一文看懂这种低成本、高效率的展示方式
使用二维码来展示业务内容,具备展示形式多样、内容实时更新、长期有效等优势,适合应用在公司简介、个人名片、酒店民宿入住、旅游路线介绍等多种场景。草料二维码免费即可使用,零基础也可轻松搭建业务介绍二维码
二维码也能做业务介绍?一文看懂这种低成本、高效率的展示方式
|
9月前
|
机器学习/深度学习 人工智能 JSON
DistilQwen-ThoughtX 蒸馏模型在 PAI-ModelGallery 的训练、评测、压缩及部署实践
通过 PAI-ModelGallery,可一站式零代码完成 DistilQwen-ThoughtX 系列模型的训练、评测、压缩和部署。
|
缓存 Kubernetes 容灾
如何基于服务网格构建高可用架构
分享如何利用服务网格构建更强更全面的高可用架构
|
存储 JavaScript
Vue 组件间如何通信
Vue组件间通信是指在Vue应用中,不同组件之间传递数据和事件的方法。常用的方式有:props、自定义事件、$emit、$attrs、$refs、provide/inject、Vuex等。掌握这些方法可以实现父子组件、兄弟组件及跨级组件间的高效通信。
|
运维 Prometheus 监控
持续监控和反馈:优化反馈机制与改进流程
持续监控和反馈:优化反馈机制与改进流程
843 1

热门文章

最新文章