python链接mongoDB查询语句的基本语法

mongoDB查询语句

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)])
	
  • 6
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值