本文實例講述了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