本文实例讲述了Python操作mongodb数据库进行模糊查询操作。分享给大家供大家参考,具体如下:
1
2
3
4
5
6
7
8
9
10
|
# -*- 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 集合中有一些数据记录
1
2
3
4
5
6
7
8
9
10
11
|
{ "_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"的记录:
1
2
|
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"的记录:
1
2
|
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程序设计有所帮助。
原文链接:https://www.cnblogs.com/shaosks/p/5740629.html