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 相关文章推荐
Django中使用group_by的方法
May 26 Python
Python中内置的日志模块logging用法详解
Jul 12 Python
Python使用sftp实现上传和下载功能(实例代码)
Mar 14 Python
Python实现购物系统(示例讲解)
Sep 13 Python
详解python里使用正则表达式的全匹配功能
Oct 19 Python
Django中url的反向查询的方法
Mar 14 Python
python学习入门细节知识点
Mar 29 Python
基于python指定包的安装路径方法
Oct 27 Python
python 执行终端/控制台命令的例子
Jul 12 Python
Python Django 前后端分离 API的方法
Aug 28 Python
Python3.7 读取 mp3 音频文件生成波形图效果
Nov 05 Python
python数据预处理 :样本分布不均的解决(过采样和欠采样)
Feb 29 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
在JavaScript中调用php程序
2009/03/09 PHP
PHP开发中常用的三个表单验证函数使用小结
2010/03/03 PHP
php中DOMDocument简单用法示例代码(XML创建、添加、删除、修改)
2010/12/19 PHP
Window 7/XP 安装Apache 2.4与PHP 5.4 的过程详解
2013/06/02 PHP
php图形jpgraph操作实例分析
2017/02/22 PHP
jQuery插件 tabBox实现代码
2010/02/09 Javascript
JS控制文本框textarea输入字数限制的方法
2013/06/17 Javascript
jQuery中add()方法用法实例
2015/01/08 Javascript
JavaScript AOP编程实例
2015/06/16 Javascript
获取JavaScript异步函数的返回值
2016/12/21 Javascript
Angular JS 生成动态二维码的方法
2017/02/23 Javascript
jQuery插件zTree实现删除树节点的方法示例
2017/03/08 Javascript
jQuery 控制文本框自动缩小字体填充
2017/06/16 jQuery
JavaScript实现图片的放大缩小及拖拽功能示例
2019/05/14 Javascript
[02:29]完美世界高校联赛上海赛区回顾
2015/12/15 DOTA
[54:58]完美世界DOTA2联赛PWL S2 LBZS vs Rebirth 第一场 11.25
2020/11/25 DOTA
python自定义类并使用的方法
2015/05/07 Python
详解Python的Django框架中inclusion_tag的使用
2015/07/21 Python
Python实现的多线程同步与互斥锁功能示例
2017/11/30 Python
Python 快速实现CLI 应用程序的脚手架
2017/12/05 Python
Django如何自定义分页
2018/09/25 Python
python使用magic模块进行文件类型识别方法
2018/12/08 Python
Python中logging实例讲解
2019/01/17 Python
用python建立两个Y轴的XY曲线图方法
2019/07/08 Python
python实现简易淘宝购物
2019/11/22 Python
Pytorch 神经网络—自定义数据集上实现教程
2020/01/07 Python
python上selenium的弹框操作实现
2020/07/13 Python
小橄榄树:Le Petit Olivier
2018/04/23 全球购物
我的职业生涯规划:打造自己的运动帝国
2014/09/18 职场文书
《浅水洼里的小鱼》教学反思
2016/02/16 职场文书
《莫泊桑拜师》教学反思
2016/02/22 职场文书
python爬取网页版QQ空间,生成各类图表
2021/06/02 Python
总结Python变量的相关知识
2021/06/28 Python
Java中CyclicBarrier和CountDownLatch的用法与区别
2021/08/23 Java/Android
python基础之错误和异常处理
2021/10/24 Python
SQL注入详解及防范方法
2021/12/06 MySQL