Python操作mongodb数据库进行模糊查询操作示例


Posted in Python onJune 09, 2018

本文实例讲述了Python操作mongodb数据库进行模糊查询操作。分享给大家供大家参考,具体如下:

# -*- coding: utf-8 -*-
import pymongo
import re
from pymongo import MongoClient
#创建连接
#10.20.66.106
client = MongoClient('10.20.4.79', 27017)
#client = MongoClient('10.20.66.106', 27017)
db_name = 'ta'
db = client[db_name]

假设mongodb数据库中school 集合中有一些数据记录

{ "_id" : 1, "zipcode" : "63109", "students" : { "comments" : "python abc" } }
{ "_id" : 2, "zipcode" : "63110", "students" : { "comments" : "python abc" } }
{ "_id" : 3, "zipcode" : "63109", "students" : { "comments" : "python abc" } }
{ "_id" : 4, "zipcode" : "63109", "students" : { "comments" : "python abc" } }
{ "_id" : 5, "zipcode" : "63109", "students" : { "comments" : "python abc" } }
{ "_id" : 7, "zipcode" : "63109", "students" : { "comments" : "python abc" }, "school" : "102 python abc" }
{ "_id" : 8, "zipcode" : "63109", "students" : { "comments" : "python abc" }, "school" : "100 python abc xyz" }
{ "_id" : 9, "zipcode" : "100", "students" : { "name" : "mike", "age" : 12, "comments" : "python" } }
{ "_id" : 10, "zipcode" : "100", "students" : { "name" : "Marry", "age" : 42, "comments" : "this is a python" } }
{ "_id" : 11, "zipcode" : "100", "students" : { "name" : "joe", "age" : 92, "comments" : "this is a python program" } }
{ "_id" : 12, "zipcode" : "100", "students" : { "name" : "joedd", "age" : 34, "comments" : "python is a script language" } }

现在要对students中comments的数据进行模糊查询, python中模糊查询要借助正则表达式:

1、查询comments中包含"abc"的记录:

for u in db.school.find({'students.comments':re.compile('abc')}):
print u

结果如下:

{u'students': {u'comments': u'python abc'}, u'_id': 1.0, u'zipcode': u'63109'}
{u'students': {u'comments': u'python abc'}, u'_id': 2.0, u'zipcode': u'63110'}
{u'students': {u'comments': u'python abc'}, u'_id': 3.0, u'zipcode': u'63109'}
{u'students': {u'comments': u'python abc'}, u'_id': 4.0, u'zipcode': u'63109'}
{u'students': {u'comments': u'python abc'}, u'_id': 5.0, u'zipcode': u'63109'}
{u'students': {u'comments': u'python abc'}, u'school': u'102 python abc', u'_id': 7.0, u'zipcode': u'63109'}
{u'students': {u'comments': u'python abc'}, u'school': u'100 python abc xyz', u'_id': 8.0, u'zipcode': u'63109'}

2、查询comments中包含"this is"的记录:

for u in db.school.find({'students.comments':re.compile('this is')}):
print u

结果如下:

{u'students': {u'age': 42.0, u'name': u'Marry', u'comments': u'this is a python'}, u'_id': 10.0, u'zipcode': u'100'}
{u'students': {u'age': 92.0, u'name': u'joe', u'comments': u'this is a python program'}, u'_id': 11.0, u'zipcode': u'100'}

由此可见,模糊查询要用到re模块,查询条件利用re.compile()函数

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python保存MongoDB上的文件到本地的方法
Mar 16 Python
python 删除大文件中的某一行(最有效率的方法)
Aug 19 Python
Python字符串格式化的方法(两种)
Sep 19 Python
Python简单获取二维数组行列数的方法示例
Dec 21 Python
python读取xlsx的方法
Dec 25 Python
python实现简单图片物体标注工具
Mar 18 Python
Python opencv实现人眼/人脸识别以及实时打码处理
Apr 29 Python
python实现网站用户名密码自动登录功能
Aug 09 Python
django model通过字典更新数据实例
Apr 01 Python
详解Pycharm安装及Django安装配置指南
Sep 15 Python
python获取命令行参数实例方法讲解
Nov 02 Python
python 基于UDP协议套接字通信的实现
Jan 22 Python
python 用lambda函数替换for循环的方法
Jun 09 #Python
python dataframe常见操作方法:实现取行、列、切片、统计特征值
Jun 09 #Python
python pandas 如何替换某列的一个值
Jun 09 #Python
pandas 对series和dataframe进行排序的实例
Jun 09 #Python
python pandas库中DataFrame对行和列的操作实例讲解
Jun 09 #Python
python pandas修改列属性的方法详解
Jun 09 #Python
numpy判断数值类型、过滤出数值型数据的方法
Jun 09 #Python
You might like
第五节--克隆
2006/11/16 PHP
用PHP的ob_start();控制您的浏览器cache!
2007/02/14 PHP
php $_SERVER当前完整url的写法
2009/11/12 PHP
ThinkPHP表单自动提交验证实例教程
2014/07/18 PHP
PHP使用缓存即时输出内容(output buffering)的方法
2015/08/03 PHP
Aster vs KG BO3 第一场2.19
2021/03/10 DOTA
jQuery 加上最后自己的验证
2009/11/04 Javascript
基于jQuery实现点击同时更改两个iframe的网址
2010/07/01 Javascript
页面图片浮动左右滑动效果的简单实现案例
2014/02/10 Javascript
JavaScript操作cookie类实例
2015/03/31 Javascript
AngularJS入门心得之directive和controller通信过程
2016/01/25 Javascript
谈一谈jQuery核心架构设计
2016/03/28 Javascript
jQuery 插件封装的方法
2016/11/16 Javascript
javascript正则表达式模糊匹配IP地址功能示例
2017/01/06 Javascript
jquery中$.fn和图片滚动效果实现的必备知识总结
2017/04/21 jQuery
jQuery初级教程之网站品牌列表效果
2017/08/02 jQuery
使用yeoman构建angular应用的方法
2017/08/14 Javascript
Bootstrap3.3.7导航栏下拉菜单鼠标滑过展开效果
2017/10/31 Javascript
原生nodejs使用websocket代码分享
2018/04/07 NodeJs
在 Typescript 中使用可被复用的 Vue Mixin功能
2018/04/17 Javascript
vue如何获取自定义元素属性参数值的方法
2019/05/14 Javascript
js计时事件实现圆形时钟
2020/03/25 Javascript
[01:01:22]VGJ.S vs OG 2018国际邀请赛淘汰赛BO3 第一场 8.22
2018/08/23 DOTA
解决python 未发现数据源名称并且未指定默认驱动程序的问题
2018/12/07 Python
Django实现基于类的分页功能
2019/10/31 Python
Python实现寻找回文数字过程解析
2020/06/09 Python
python 密码学示例——理解哈希(Hash)算法
2020/09/21 Python
css3的动画特效之动画序列(animation)
2017/12/22 HTML / CSS
html5 Canvas画图教程(2)—画直线与设置线条的样式如颜色/端点/交汇点
2013/01/09 HTML / CSS
allbeauty美国:英国在线美容店
2019/03/11 全球购物
英国购买威士忌网站:Master of Malt
2019/09/26 全球购物
英国Lookfantastic中文网站:护肤品美妆美发购物(英国直邮)
2020/04/27 全球购物
物业保安岗位职责
2014/07/02 职场文书
小学红领巾广播稿(3篇)
2014/09/13 职场文书
2015公务员年度考核评语
2015/03/25 职场文书
CSS3 制作的悬停缩放特效
2021/04/13 HTML / CSS