MongoDB-数据库文档操作(2)

任务描述

文档数据在 MongoDB 中的查询和删除。

相关知识

本文将教你掌握:

  1. 查询文档命令;
  2. 删除文档命令。
查询文档

我们先插入文档到集合 stu1 :

复制代码
document=([{
name:'张小华',
sex:'男',
age:20,
phone:'12356986594',
hobbies:['打篮球','踢足球','唱歌']
},{
name:'李小红',
sex:'女',
age:18,
phone:'12355487536',
hobbies:['跳舞','唱歌']
}])

db.stu1.insert(document)

然后查看 stu1 ,命令和结果如图1所示(因为我们没有设置_id,所以 MongoDB 会默认生成:

图 1

上述显示的文档格式不够整齐,我们可以使用 pretty() 方法,使输出更整齐,如图2所示:

图 2

条件查询
操作 格式 范例 关系数据库中类似的语句
等于 {<key>:<value>} db.stu1.find({"name":"李小红"}).pretty() where name = '李小红'
小于 {<key>:{$lt:<value>}} db.stu1.find({"age":{$lt:18}}).pretty() where age < 18
小于或等于 {<key>:{$lte:<value>}} db.stu1.find({"age":{$lte:18}}).pretty() where age <= 18
大于 {<key>:{$gt:<value>}} db.stu1.find({"age":{$gt:18}}).pretty() where age > 18
大于或等于 {<key>:{$gte:<value>}} db.stu1.find({"age":{$gte:18}}).pretty() where age >= 18
不等于 {<key>:{$ne:<value>}} db.stu1.find({"age":{$ne:18}}).pretty() where age != 18

现在我们来查找一下 age 大于18岁的数据,命令和效果如图3所示:

图 3

AND 条件

find() 方法可以传入多个键 (key),每个键 (key) 以逗号隔开,即常规 SQL 的 AND 条件。如查询集合 stu1 中年龄为20岁的男性信息:

复制代码
db.stu1.find({"age":20, "sex":"男"}).pretty()

查询结果如图4所示:

图 4

删除文档数据

删除指定的数据:

复制代码
db.stu1.remove({'age':20}) //删除年龄为20的数据

查看该集合的内容,如果只剩下如图5所示的信息,说明数据删除成功:

图 5

删除全部数据(集合并不会删除):

复制代码
db.remove({})

查看该集合的内容,如果如图6所示,无显示或者显示为空,说明数据全部删除:

图 6

相关推荐
TTBIGDATA1 分钟前
【Ambari监控】Ambari-Metrics 的分支研究
大数据·数据库·hadoop·ambari·bigtop·edp·hidataplus
Z_z在努力10 分钟前
【杂类】应对 MySQL 处理短时间高并发的请求:缓存预热
数据库·mysql·缓存
麦兜*19 分钟前
Docker 部署 MongoDB:单节点与副本集的最佳实践
java·spring boot·mongodb·spring cloud·docker·容器·maven
望获linux1 小时前
【实时Linux实战系列】规避缺页中断:mlock/hugetlb 与页面预热
java·linux·服务器·数据库·chrome·算法
longerxin20201 小时前
MongoDB 在线安装-一键安装脚本(CentOS 7.9)
数据库·mongodb·centos
水无痕simon2 小时前
3 水平分表
java·数据库
恣艺2 小时前
探索数据库世界:从基础类型到实际应用
数据库
小钻风33662 小时前
IDEA连接redis数据库时出现Failed to connect to any host resolved for DNS name.
数据库
ulias2122 小时前
单元最短路问题
数据库·c++·算法·动态规划
安卓开发者2 小时前
鸿蒙NEXT中SQLite数据库全面实战指南
数据库·sqlite·harmonyos