MongoDB链接
from pymongo import MongoClient
#链接本地数据库
dbClient = MongoClient("localhost", 27017)
# 调用server_info查询服务器状态,防止服务器异常并未连接成功
dbClient.server_info()
#指定MongoDB的表名
last_col=dbClient ['数据库名称']['表名']
查找操作
find(query,field)
功能: 查找数据
参数:
query: 筛选条件, 相当于where字句
field: 选定要展示的域
query更多用法功能
操作符: $ 符号, 注明的一个特殊字串, 表达一定的含义
$eq:表示 等于(不常用) db.class0.find({age:{$eq:18}},{_id:0}}) 等同于:db.class0.find({age:18},{_id:0}})
$ne: 不等于 db.class0.find({age:{$ne:18},{_id:0}}) # 查找年龄 不等于18的
$lt: 小于 db.class0.find({age:{$lt:18},{_id:0}}) #查找年龄 小于18的
$lte: 小于等于 <= db.class0.find({age:{$lte:18},{_id:0}}) # 查找年龄 小于等于18的
$gt: 大于 > db.class0.find({age:{$gt:18},{_id:0}}) # 查找年龄 大于18的
$get: 大于等于 >= db.class0.find({age:{$gte:18},{_id:0}}) # 查找年龄 大于等于18的
$in : 表示包含 db.class0.find({age:{$in:[25,27]},{_id:0}}) # 年龄包含在[ ] 中的
$nin: 表示不包含 db.class0.find({age:{$nin:[1,2,3,4,5]}},{_id:0}) #查找年龄不包含在[ ]中的文档
查找结果处理函数
1、distinct() 功能: 查看一个集合中某个域的值的范围 eg:db.class0.distinct('age') 查看年龄 的范围
2、pretty() 功能: 将查询结果格式显示(用处不大)
3、 limit(n) 功能:显示查找结果 的前n条 eg:db.class0.find({},{_id:0}).limit(2)
4、skip(n) 功能:显示查找结果跳过前n条 eg:> db.class0.find({},{_id:0}).skip(2)
5、count() 功能:查找结果 eg:db.class0.find({},{_id:0}).count()
6、sort() 功能:对查找的结果排序显示 参数:以键值对形式给出 1 表示按升序 -1降序
7、函数连续使用
当函数返回的是文档集合是可以连续调用操作函数 eg: db.class0.find({},{_id:0}).sort({age:1,name:1}).limit(3)
逻辑操作符:
1.qurey中多个条件为并列的关系 eg:db.class0.find({name:'小峰',age:24},{_id:0}) # 年龄:小峰,并且 年龄:24 的文档
2.$and eg:db.class0.find({$and:[{name:'小峰'},{age:24}]},{_id:0})
3、or eg:db.class0.find( { $or:[ {age: {$gt:29} }, {age: {$lt:25} } ] }, {_id:0} )
4、$not
5、$nor 既不也不
6、$all 查找数组中同时包含多项的文档 eg:db.class0.find({score:{$all:[65,88]}},{_id:0}) * 查找数组中同事包含65 88 的文档
7、$size eg:db.class0.find({score:{$size:4}},{_id:0}) * 查找数组中包含4项的文档
8、$slice (显示相关) 取数组的部分进行显示, 放在field 中
eg:db.class0.find({},{_id:0,score:{$slice:2}}) * 显示数组中的前2项
eg: db.class0.find({},{_id:0,score:{$slice:[1,2]}}) * 跳过第一项,显示后两项
其他查询方法
1、$exists 判断一个域是否存在
eg:* 存在sex域的 db.class0.find({sex:{$exists:true}},{_id:0})
* 不存在sex域的 db.class0.find({sex:{$exists:false}},{_id:0})
2、$mod 余数查找 eg: db.class0.find({age:{$mod:[2,1]}},{_id:0})
3、$type 查找指定数据类型的文档 *如果查找数组的域 docs.mongodb.com
eg
#查询表中数据,按datetime正序查询
last_col.find({"date": {"$gte": '20170101', "$lte":'20180102'}}).sort([('datetime', 1)])