本文实例讲述了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,"students" : { "comments" : "python abc" } }
{ "_id" : 4,"students" : { "comments" : "python abc" } }
{ "_id" : 5,"students" : { "comments" : "python abc" } }
{ "_id" : 7,"students" : { "comments" : "python abc" },"school" : "102 python abc" }
{ "_id" : 8,"school" : "100 python abc xyz" }
{ "_id" : 9,"zipcode" : "100","students" : { "name" : "mike","age" : 12,"comments" : "python" } }
{ "_id" : 10,"students" : { "name" : "Marry","age" : 42,"comments" : "this is a python" } }
{ "_id" : 11,"students" : { "name" : "joe","age" : 92,"comments" : "this is a python program" } }
{ "_id" : 12,"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'_id': 4.0,u'_id': 5.0,u'school': u'102 python abc',u'_id': 7.0,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程序设计有所帮助。