1. 1. 应用mongoalchemy进行ORM包装开发
  2. 第一步:定义ORM模型类
  3. class CoreLog(Document):
  4.     _id = ObjectIdField(required=False)
  5.     args = TupleField(StringField())
  6.     name= StringField()
  7.     level=StringField()
  8.     line_no=IntField()
  9.     funcname=StringField()
  10.     host=StringField()
  11.     user=StringField()
  12.     file=StringField()
  13.     time= DateTimeField()
  14.     msg=StringField()
  15.     exc_info=AnythingField()
  16.     config_collection_name = "corelog"
对DateTimeField字段进行大小匹配查询
session = Session.connect(database="pub_ads",host="10.xxx.xxx.xxx", port=27017)
for donor in session.query(CoreLog).filter({CoreLog.time:{'$gte':datetime.datetime(2004, 12, 31),'$lt':datetime.datetime(2014, 12, 31)}}):
    print donor.funcname
注意
1、DateTimeField进行大小匹配的时候是以DateTime为准的!所以对于字符串需要先转成datetime类型方可再进行比较!
2、对于字符串想实现like的功能可以这样操作
q      = re.compile(r'%s.*' % filename, re.IGNORECASE)  --做一个正则
tmp_result = tmp_result.filter({FileInfo.filename:{'$regex':q}})
支持正则匹配符!









$$$$$$$$$$$$$$$$$$$$以下是pymongo模块的常用操作$$$$$$$$$$$$$$$$$$$$$$$






10-28 21:16
查看更多