python - mongo语句查询

查看:119
本文介绍了python - mongo语句查询的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

用python写脚本调取mongodb数据库里面的数据原sql语句是

db.fs.files.find({'metadata.moduleId':9,uploadDate:{'$lt':ISODate("2016-07-05T08:00:00.000Z")}}).count();

原本数据的样子

{u'contentType': u'data:image/png', u'chunkSize': 261120L, u'metadata': {u'realmId': u'21', u'moduleId': 5}, u'filename': u'36272ab5-ccb6-4dbc-af24-09f9176e235e', u'length': 1976L, u'uploadDate': datetime.datetime(2016, 6, 21, 13, 12, 24, 816000), u'_id': ObjectId('57693d38e4b06abdf11de787'), u'md5': u'6701ddc2ac11bef7dbe9b70c0ae437c8', u'aliases': None}

现在用pymongo调取的话时间问题解决了但是metadata这里不知道怎么写才能筛选出来moduleId的数值=9求大神解决~!

#!/usr/bin/python
#coding=utf-8
import pymongo
import datetime
conn = pymongo.Connection('127.0.0.1',27017)
db = conn.mifan
collection = db.fs.files
###########
d=datetime.datetime(2016,6,23)
#for post in collection.find({"uploadDate":{"$lt":d}}):
#       print post
print collection.find({"uploadDate":{"$lt":d}}).count()
print collection.find({"metadata":{"type":"0","moduleId":"9"}}).count()

解决方案

你的第一句不也是 pymongo 的么?
要筛选出 metadata moduleId的数值=9 的数据和第一行一样写就可以了:

print collection.find({"metadata.moduleId":9}).count()

这篇关于python - mongo语句查询的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆