前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MongoDB-表数据查询的基本用法介绍

MongoDB-表数据查询的基本用法介绍

作者头像
小博测试成长之路
发布2022-12-02 15:10:35
1K0
发布2022-12-02 15:10:35
举报
文章被收录于专栏:软件测试学习

在之前的文章中,学习了MongoDB中往表里面插入数据的方法,接下来,让我们一起了解一下在MongoDB中查询数据是怎么样去写的:

查询主要是用find()方法:db.getCollection("user").find(query,projection)

参数说明:

query:查询条件,非必填

projection:设置返回结果中要返回哪些字段,非必填,默认都返回

下面按照mysql中的常见查询的用法来对比学习和记忆相关的用法:

1、查询指定数据库下某个表的所有数据

代码语言:javascript
复制
mysql:
  select  *  from study.user
mongodb: 
  db.getSiblingDB("study").getCollection("user").find()

如果已经进入某个数据库后,查询语句可以简化一下:

代码语言:javascript
复制
db.getCollection("user").find()

use study;
db.user.find()

2、单字段查询

代码语言:javascript
复制
mysql:
  select * from user where name = "小博"
mongodb:
  db.user.find({"name":"小博"})

3、多字段查询

代码语言:javascript
复制
mysql:
  select * from user where name = "小博" and age = 18
mongodb:
  db.user.find({"name":"小博","age":18})

4、针对复杂结构的字段查询(文档嵌套文档)

插入数据用于查询:

代码语言:javascript
复制
db.user.insertMany([{"name":"小博测试成长之路" ,"userinfo":{"age":NumberLong(30),"wechat":"xiaobotester"}},
{"name":"李逵" ,"userinfo":{"age":NumberLong(10),"wechat":"xiaobo"}} ])

插入数据库后的结构如下:

比如现在想查询userinfo下的age为30的数据,可以使用下面的查询语句:

代码语言:javascript
复制
db.user.find({"userinfo.age":30})

5、指定查询结果只显示哪些字段或者隐藏哪些字段

db.getCollection("user").find(query,projection)

后面的参数projection就可以填入哪些字段要返回或者隐藏:

代码语言:javascript
复制
db.user.find({ } ,{age:1 })  # 只返回age字段,id字段默认均返回
db.user.find({ } ,{age:0 })  # 隐藏age字段不返回
db.user.find({ } ,{age:true ,name:1})  
db.user.find({ } ,{age:0 ,name:false})

注意:

1、简单点我们可以就用0和1去区分是否隐藏或者只展示某个字段,也可以用true和false去标识。

2、要么隐藏部分字段,要么只展示某些字段(错误用法:针对不同字段,混用)

代码语言:javascript
复制
错误用法:
db.user.find({ } ,{age:0 ,name:1})

3、针对同一字段,同时设置多个时,以最后面的配置为准

代码语言:javascript
复制
db.user.find({ } ,{age:0 ,age:1})    # 只展示_id和age字段
db.user.find({ } ,{age:1 ,age:0})    # 隐藏age字段不展示
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-07-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小博测试成长之路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 MongoDB
腾讯云数据库 MongoDB(TencentDB for MongoDB)是腾讯云基于全球广受欢迎的 MongoDB 打造的高性能 NoSQL 数据库,100%完全兼容 MongoDB 协议,支持跨文档事务,提供稳定丰富的监控管理,弹性可扩展、自动容灾,适用于文档型数据库场景,您无需自建灾备体系及控制管理系统。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档