任务描述
文档数据在 MongoDB 中的查询和删除。
相关知识
本文将教你掌握:
- 查询文档命令;
- 删除文档命令。
查询文档
我们先插入文档到集合 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