python之PyMongo使用总结


Posted in Python onMay 26, 2017

 PyMongo是什么

PyMongo是驱动程序,使python程序能够使用Mongodb数据库,使用python编写而成.

安装

环境:Ubuntu 14.04+python2.7+MongoDB 2.4

先去官网下载软件包,地址点击打开链接.解压缩后进入,使用python setup.py install 进行安装

或者用pip安装pip -m install pymongo

基本使用

创建连接

import pymongo 
client = pymongo.MongoClient('localhost', 27017)

或者可以这样

import pymongo 
client = MongoClient('mongodb://localhost:27017/')

连接数据库

db = client.mydb 
#或者
db = client['mydb']

连接聚集

聚集相当于关系型数据库中的表

collection = db.my_collection 
#或者
collection = db['my_collection']

查看数据库下所有聚集名称

db.collection_names()

插入记录

collection.insert({"key1":"value1","key2","value2"})

删除记录

全部删除

collection.remove()

按条件删除

collection.remove({"key1":"value1"})

更新记录

collection.update({"key1": "value1"}, {"$set": {"key2": "value2", "key3": "value3"}}) 

查询记录

查询一条记录:find_one()不带任何参数返回第一条记录.带参数则按条件查找返回

collection.find_one() 
collection.find_one({"key1":"value1"})

查询多条记录:find()不带参数返回所有记录,带参数按条件查找返回

collection.find() 
collection.find({"key1":"value1"})

查看聚集的多条记录

for item in collection.find():   
  print item

查看聚集记录的总数

print collection.find().count()

查询结果排序

单列上排序

collection.find().sort("key1") # 默认为升序 
collection.find().sort("key1", pymongo.ASCENDING) # 升序 
collection.find().sort("key1", pymongo.DESCENDING) # 降序

多列上排序

collection.find().sort([("key1", pymongo.ASCENDING), ("key2", pymongo.DESCENDING)]) 

实例1:

#!/usr/bin/env python
#coding:utf-8
# Author:  --<qingfengkuyu>
# Purpose: MongoDB的使用
# Created: 2014/4/14
#32位的版本最多只能存储2.5GB的数据(NoSQLFan:最大文件尺寸为2G,生产环境推荐64位)
 
import pymongo
import datetime
import random
 
#创建连接
conn = pymongo.Connection('10.11.1.70',27017)
#连接数据库
db = conn.study
#db = conn['study']
 
#打印所有聚集名称,连接聚集
print u'所有聚集:',db.collection_names()
posts = db.post
#posts = db['post']
print posts
 
#插入记录
new_post = {"AccountID":22,"UserName":"libing",'date':datetime.datetime.now()}
new_posts = [{"AccountID":22,"UserName":"liuw",'date':datetime.datetime.now()},
       {"AccountID":23,"UserName":"urling",'date':datetime.datetime.now()}]#每条记录插入时间都不一样
 
posts.insert(new_post)
#posts.insert(new_posts)#批量插入多条数据
 
#删除记录
print u'删除指定记录:\n',posts.find_one({"AccountID":22,"UserName":"libing"})
posts.remove({"AccountID":22,"UserName":"libing"})
 
#修改聚集内的记录
posts.update({"UserName":"urling"},{"$set":{'AccountID':random.randint(20,50)}})
 
#查询记录,统计记录数量
print u'记录总计为:',posts.count(),posts.find().count()
print u'查询单条记录:\n',posts.find_one()
print posts.find_one({"UserName":"liuw"})
 
#查询所有记录
print u'查询多条记录:'
#for item in posts.find():#查询全部记录
#for item in posts.find({"UserName":"urling"}):#查询指定记录
#for item in posts.find().sort("UserName"):#查询结果根据UserName排序,默认为升序
#for item in posts.find().sort("UserName",pymongo.ASCENDING):#查询结果根据UserName排序,ASCENDING为升序,DESCENDING为降序
for item in posts.find().sort([("UserName",pymongo.ASCENDING),('date',pymongo.DESCENDING)]):#查询结果根据多列排序
  print item
 
#查看查询语句的性能
#posts.create_index([("UserName", pymongo.ASCENDING), ("date", pymongo.DESCENDING)])#加索引
print posts.find().sort([("UserName",pymongo.ASCENDING),('date',pymongo.DESCENDING)]).explain()["cursor"]#未加索引用BasicCursor查询记录
print posts.find().sort([("UserName",pymongo.ASCENDING),('date',pymongo.DESCENDING)]).explain()["nscanned"]#查询语句执行时查询的记录数

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python实现PS图像调整之对比度调整功能示例
Jan 26 Python
Python装饰器用法实例总结
Feb 07 Python
使用python 3实现发送邮件功能
Jun 15 Python
Pandas 同元素多列去重的实例
Jul 03 Python
Django中的FBV和CBV用法详解
Sep 15 Python
django实现支付宝支付实例讲解
Oct 17 Python
DRF框架API版本管理实现方法解析
Aug 21 Python
Python爬虫中Selenium实现文件上传
Dec 04 Python
python自动生成证件号的方法示例
Jan 14 Python
Python环境搭建过程从安装到Hello World
Feb 05 Python
python常见的占位符总结及用法
Jul 02 Python
python函数的两种嵌套方法使用
Apr 02 Python
Python3安装Pymongo详细步骤
May 26 #Python
Python计时相关操作详解【time,datetime】
May 26 #Python
Python表示矩阵的方法分析
May 26 #Python
Python实现中文数字转换为阿拉伯数字的方法示例
May 26 #Python
Python简单网络编程示例【客户端与服务端】
May 26 #Python
Python编程对列表中字典元素进行排序的方法详解
May 26 #Python
利用Python实现网络测试的脚本分享
May 26 #Python
You might like
CI框架源码阅读,系统常量文件constants.php的配置
2013/02/28 PHP
PHP统计二维数组元素个数的方法
2013/11/12 PHP
自己写的兼容低于PHP 5.5版本的array_column()函数
2014/10/24 PHP
详解PHP的抽象类和抽象方法以及接口总结
2019/03/15 PHP
JQuery操作表格(隔行着色,高亮显示,筛选数据)
2012/02/23 Javascript
Three.js源码阅读笔记(Object3D类)
2012/12/27 Javascript
jquery.Ajax()方法调用Asp.Net后台的方法解析
2014/02/13 Javascript
Javascript基础教程之关键字和保留字汇总
2015/01/18 Javascript
php常见的页面跳转方法汇总
2015/04/15 Javascript
原生js页面滚动延迟加载图片
2015/12/20 Javascript
基于jQuery实现的设置文本区域的光标位置
2018/06/15 jQuery
JS基于ES6新特性async await进行异步处理操作示例
2019/02/02 Javascript
Vue脚手架编写试卷页面功能
2020/03/17 Javascript
Vue项目中数据的深度监听或对象属性的监听实例
2020/07/17 Javascript
vue使用require.context实现动态注册路由
2020/12/25 Vue.js
[56:14]Fnatic vs OG 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
python遍历文件夹并删除特定格式文件的示例
2014/03/05 Python
详解Django中Request对象的相关用法
2015/07/17 Python
Django中利用filter与simple_tag为前端自定义函数的实现方法
2017/06/15 Python
python实现textrank关键词提取
2018/06/22 Python
Python拼接微信好友头像大图的实现方法
2018/08/01 Python
Python叠加两幅栅格图像的实现方法
2019/07/05 Python
Django用数据库表反向生成models类知识点详解
2020/03/25 Python
Jupyter notebook快速入门教程(推荐)
2020/05/18 Python
Python 常用日期处理 -- calendar 与 dateutil 模块的使用
2020/09/02 Python
Elasticsearch py客户端库安装及使用方法解析
2020/09/14 Python
连卡佛中国官网:Lane Crawford中文站
2018/01/27 全球购物
同程旅游英文网站:LY.com
2018/11/13 全球购物
内容编辑个人求职信
2013/12/10 职场文书
公司面试感谢信
2014/02/01 职场文书
态度决定一切演讲稿
2014/05/20 职场文书
技术经济专业求职信
2014/09/03 职场文书
好媳妇事迹材料
2014/12/24 职场文书
省级三好学生主要事迹材料
2015/11/03 职场文书
2019餐饮行业创业计划书!
2019/06/27 职场文书
Python 数据可视化神器Pyecharts绘制图像练习
2022/02/28 Python