精品电商网站建设,如何注册个人网站,攻击wordpress,树莓派安装wordpress业务系统接入数据库后#xff0c;每天都有大量的数据写入数据库。面对逐日增加的数据#xff0c;开发人员或数据分析人员#xff0c;该如何读取数据#xff0c;怎样设置条件#xff0c;从数据库中查询数据#xff1f;
本文基于mongodb的官方文档#xff0c;整理出find命…业务系统接入数据库后每天都有大量的数据写入数据库。面对逐日增加的数据开发人员或数据分析人员该如何读取数据怎样设置条件从数据库中查询数据
本文基于mongodb的官方文档整理出find命令的基本用法。
构建测试集
向inventory集合中插入5条数据
db.inventory.insertMany([{ item: journal, qty: 25, size: { h: 14, w: 21, uom: cm }, status: A },{ item: notebook, qty: 50, size: { h: 8.5, w: 11, uom: in }, status: A },{ item: paper, qty: 100, size: { h: 8.5, w: 11, uom: in }, status: D },{ item: planner, qty: 75, size: { h: 22.85, w: 30, uom: cm }, status: D },{ item: postcard, qty: 45, size: { h: 10, w: 15.25, uom: cm }, status: A }
])
查询所有数据
在find命令中不指定过滤器或添加一个空的过滤器即可查询集合中所有数据。
db.inventory.find()
db.inventory.find({}) 使用find查询时返回结果是一个游标。使用mongosh或使用其他连接工具查询数据时客户端默认通过该游标获取前面几条数据。用户需要移动游标来读取更多数据。
本测试集中只有5条数据客户端自动移动游标获取全部数据。
等值查询
在查询过滤器中添加键值对实现等值查询
{field1: value1, ...}
如查询集合inventory中状态为D的数据
db.inventory.find({status: D})
使用操作符指定查询条件
$in操作符
使用$in操作符查询符合数组中元素的字段
//查询status是A或D的字段
db.inventory.find({status: {$in: [A, D]}})
使用逻辑操作符复合查询
复合查询指多余一个过滤条件的查询。
$and操作符
通常情况下可以隐式的使用$and操作符建立符合查询。查询出符合所有指定过滤条件的文档。
db.inventory.find({status: A, qty: {$lt: 30}})
如上面的查询语句查询出符合status是A并且符合qty大于30的文档
当显示的写出$and操作符时查询语句变成下面的语句
db.inventory.find({$and: [{status: A}, {qty: {$lt: 30}}]})
$or操作符
使用$or操作符查询出至少满足一个过滤条件的文档。如下面的查询中查询出满足status是A或qty大于30的文档或者查询出同时满足下面两个条件的文档。
db.inventory.find({$or: [{status: A}, {qty: {$lt:30}}]})
$and与$or共用
当$and与$or共用时可以建立更复杂的查询。下面的语句查询出status为A的文档同时满足qty小于30或item以“p”字符开头的数据。
db.inventory.find({status: A, $or: [{qty: {$lt: 30}},{item: /^p/}]})