1. 程式人生 > 資料庫 >Python操作mongodb資料庫進行模糊查詢操作示例

Python操作mongodb資料庫進行模糊查詢操作示例

本文例項講述了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相關內容感興趣的讀者可檢視本站專題:《Python常見資料庫操作技巧彙總》、《Python數學運算技巧總結》、《Python資料結構與演算法教程》、《Python函式使用技巧總結》、《Python字串操作技巧彙總》、《Python入門與進階經典教程》及《Python檔案與目錄操作技巧彙總》

希望本文所述對大家Python程式設計有所幫助。