pymongo使用总结

本文涉及的产品
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
云原生数据库 PolarDB MySQL 版,通用型 2核8GB 50GB
简介:

0. 何为pymongo

pymongo是操作MongoDB的python模块

1、安装pymongo

# easy_install pymongo

2、连接mongodb

>>> import pymongo
>>> conn = pymongo.MongoClient(host=host,port=port,tz_aware=False)

3、获取数据库列表

>>> conn.database_names()
[u'test1', u'test2', u'admin', u'local']

4、连接数据库

>>> db = conn.get_database("db_name")

5、权限验证

>>> db.authenticate('username', 'password')
True

6、获取聚集列表 (聚集的概念类似于关系型数据库中的表)

>>> db.collection_names()
[u'account', u'role', u'item', u'online']

7、连接聚集

>>> account = db.get_collection("col_name")

8、查看聚集的一条记录

>>> account.find_one()

9、查看聚集的所有key (类似于关系型数据库中的字段)

>>> account.find_one().keys()

10、查看聚集的所有记录

>>> for i in account.find():
... print i

11、查看记录总数

>>> account.find().count()

12、根据条件查询多条记录

>>> for i in account.find({"name": "xxx"}):
... print i

13、对查询结果进行排序 (默认升序ASCENDING)

>>> account.find().sort("name", pymongo.ASCENDING)
>>> account.find().sort([("name", pymongo.ASCENDING), ("active_time", pymongo.DESCENDING)])

14、新增记录

>>> account.insert({"name": "mike", "active_time": "20130408"})

15、更新记录

>>> account.update({"name": "mike"}, {"$set": {"active_time": "20130408120000"}})
注:如果数据中没有键-值"name": "mike", 会新增"active_time": "20130408120000"

16、删除记录 (不带条件表示全部删除)

>>> account.remove({"name": "mike"})

17. pycharm模糊不清匹配查询

复制代码
方法1.
import re
{'xxx':re.compile('xxx')}
方法2. {
'xxx':{'$regex':'xxx'}
复制代码

18.and or

account.find({ $or: [ { title: {$regex: 'test'} }, { intro: {$regex: 'test'} } ] })

19. 案例

复制代码
#! /usr/bin/env python
# --*-- coding:utf-8 --*--

import pymongo
import re


host="**.**.**.**"
port=27017
conn  = pymongo.MongoClient(host=host,port=port,tz_aware=False)

db_name = "test"
log_name = "col"

db_test = conn.get_database(db_name)
col_col = db_test.get_collection(log_name)

#print "db names:", conn.database_names()
#print "col names:", db_test.collection_names()
#print "one_line:", col_col.find_one()

#print "one_line_keys:", col_col.find_one().keys()

#col_col.insert({"message2":"hihihi", "msg":"123"})
#col_col.update({"message":"hello*3"}, {"$set":{"message":"hello*3*9"}})
import  datetime

y,M,d,h,m,s = 2016,2,13,18,30,0
d = datetime.datetime(y,M,d,h,m,s)
delta = datetime.timedelta(hours=8)

d = d-delta

#logs = col_col.find( {"data":{"$gt":d} } )
#logs = col_col.find( {"message":re.compile("hi")} )
logs = col_col.find( {"$and": [{"message":re.compile("hi")}, {"data":{"$gt":d} }]} )

c = logs.count()

for l in logs:
    print l

print "count:", c
print "END!"
复制代码

 






本文转自jihite博客园博客,原文链接:http://www.cnblogs.com/kaituorensheng/p/5181410.html,如需转载请自行联系原作者

相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍如何基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
相关文章
|
区块链 Android开发
区块链大众化的落地产品-深度体验蚂蚁区块链鹊凿数字版权服务平台
从18年至今,一直在思考区块链的真正有价值的大众落地是什么。 18年在个人有限的认知里得出的结论是: 围绕着空气币是没有太多的价值,只对于黑灰色产业有价值。 19年末关注到了,蚂蚁链的-鹊凿数字版权版权平台。 时至今日,经历一年半的时光,2021年,最近看到了淘宝商家服务的成交量激增,和蚂蚁与杭州互联网公证处的深度合作。确信在未来3-5年,这是一个很好的历史市场环境。
1972 1
区块链大众化的落地产品-深度体验蚂蚁区块链鹊凿数字版权服务平台
|
传感器 自动驾驶 算法
SLAM:SLAM(即时定位与地图构建)的简介、发展、案例应用之详细攻略
SLAM:SLAM(即时定位与地图构建)的简介、发展、案例应用之详细攻略
|
缓存 算法 搜索推荐
618省心凑背后的新算法——个性化凑单商品打包购推荐
作为购物导购链路的一个重要环节,凑单旨在快速帮助用户找到达成某个满减门槛(比如满300减50)的商品,完成性价比最高的跨店组合结算。
1116 0
618省心凑背后的新算法——个性化凑单商品打包购推荐
|
消息中间件 监控 算法
Kafka 常用工具脚本总结
Kafka 常用工具脚本总结
801 0
|
SQL 数据可视化 数据库
使用阿里云dataV实现大屏自动轮播
使用阿里云dataV实现大屏自动轮播进行动态展示
2100 0
使用阿里云dataV实现大屏自动轮播
|
机器学习/深度学习 算法 Python
Logistic模型原理详解以及Python项目实现(1)
Logistic模型原理详解以及Python项目实现
458 0
Logistic模型原理详解以及Python项目实现(1)
|
存储 缓存 Dragonfly
Nydus 镜像加速之内核演进之路
多年来容器化实践告诉我们,优化后的容器镜像搭配 P2P 网络等技术可以有效降低容器部署启动的时间,并可保障容器持续稳定运行,相关背景细节可以参考[“容器技术之容器镜像篇”](https://mp.weixin.qq.com/s/s4lFGbKlXuer8mlE8kqQOA)、[“让容器应用管理更快更安全,Dragonfly 发布 Nydus 容器镜像加速服务”](https://mp.weixin
1672 0
Nydus 镜像加速之内核演进之路
Win系统 - 教你在系统内查看机器的主板型号 & BIOS版本
Win系统 - 教你在系统内查看机器的主板型号 & BIOS版本
834 0
Win系统 - 教你在系统内查看机器的主板型号 & BIOS版本
|
IDE 开发工具 Python
PyCharm 下载安装和汉化
PyCharm 下载安装和汉化
435 0
PyCharm 下载安装和汉化
|
弹性计算
阿里云服务器一次购买三年的好处、优惠政策及具体价格介绍
本文介绍了在购买阿里云服务器时一次购买三年有什么优惠政策,选择三年时长有什么好处及三年具体价格等信息。
1561 0
阿里云服务器一次购买三年的好处、优惠政策及具体价格介绍