PyMongo安装使用笔记


Posted in Python onApril 27, 2015

这里是简单的安装和使用记录,首先要有一个可用的mongo环境,win环境或者linux环境都可以。 假定你对mongo有所了解和知道一些命令行操作。

安装和更新
跟大多数py包安装一样,可以源码安装,也可以使用pip或者easy_install来安装

安装

pip install pymongo

升级
pip install --upgrade pymongo

其他安装方法请参照文档pymongo安装

操作

官网教程

小案例

#-*- coding: utf-8 -*-

#python2.7x

#author: orangleliu  @2014-09-24

'''

pymongo的简单使用

'''
from pymongo import MongoClient
def get_db():

    #建立连接

    client = MongoClient("localhost", 27017)

    #test,还有其他写法

    db = client.test

    return db
def get_collection(db):

    #选择集合(mongo中collection和database都是lazy创建的,具体可以google下)

    collection = db['posts']

    print collection
def insert_one_doc(db):

    #插入一个document

    posts = db.posts

    post = {"name":"lzz", "age":25, "weight":"55"}

    post_id = posts.insert(post)

    print post_id
def insert_mulit_docs(db):

    #批量插入documents,插入一个数组

    posts = db.posts

    post = [ {"name":"nine", "age":28, "weight":"55"},

                 {"name":"jack", "age":25, "weight":"55"}]

    obj_ids = posts.insert(post)

    print obj_ids
##查询,可以对整个集合查询,可以根ObjectId查询,可以根据某个字段查询等

def get_all_colls(db):

    #获得一个数据库中的所有集合名称

    print db.collection_names()
def get_one_doc(db):

    #有就返回一个,没有就返回None

    posts = db.posts

    print posts.find_one()

    print posts.find_one({"name":"jack"})

    print posts.find_one({"name":"None"})

    return
def get_one_by_id(db):

    #通过objectid来查找一个doc

    posts = db.posts

    obj = posts.find_one()

    obj_id = obj["_id"]

    print "_id 为ObjectId类型 :"

    print posts.find_one({"_id":obj_id})

    #需要注意这里的obj_id是一个对象,不是一个str,使用str类型作为_id的值无法找到记录

    print "_id 为str类型 "

    print posts.find_one({"_id":str(obj_id)})
    #可以通过ObjectId方法把str转成ObjectId类型

    from bson.objectid import ObjectId

    print "_id 转换成ObjectId类型"

    print posts.find_one({"_id":ObjectId(str(obj_id))})
def get_many_docs(db):

    #mongo中提供了过滤查找的方法,可以通过各

    #种条件筛选来获取数据集,还可以对数据进行计数,排序等处理

    posts = db.posts

    #所有数据,按年龄排序, -1是倒序

    all =  posts.find().sort("age", -1)
    count = posts.count()

    print "集合中所有数据 %s个"%int(count)

    for i in all:

        print i
    #条件查询

    count = posts.find({"name":"lzz"}).count()

    print "lzz: %s"%count

    for i in  posts.find({"name":"lzz", "age":{"$lt":20}}):

        print i
def clear_coll_datas(db):

    #清空一个集合中的所有数据

    db.posts.remove({})
if __name__ == "__main__":

    db = get_db()

    obj_id = insert_one_doc(db)

    obj_ids = insert_mulit_docs(db)

    #get_all_colls(db)

    #get_one_doc(db)

    #get_one_by_id(db)

    #get_many_docs(db)

    clear_coll_datas(db)

这都是写简单的操作,至于集合操作,group操作等以后在总结。
Python 相关文章推荐
python实现基于两张图片生成圆角图标效果的方法
Mar 26 Python
python网络编程之文件下载实例分析
May 20 Python
Python在Console下显示文本进度条的方法
Feb 14 Python
Linux中安装Python的交互式解释器IPython的教程
Jun 13 Python
Python实现读写sqlite3数据库并将统计数据写入Excel的方法示例
Aug 07 Python
python中bs4.BeautifulSoup的基本用法
Jul 27 Python
Django对接支付宝实现支付宝充值金币功能示例
Dec 17 Python
PyTorch中的Variable变量详解
Jan 07 Python
tf.concat中axis的含义与使用详解
Feb 07 Python
后端开发使用pycharm的技巧(推荐)
Mar 27 Python
Jupyter notebook命令和编辑模式常用快捷键汇总
Nov 17 Python
Python的信号库Blinker用法详解
Dec 31 Python
Windows下PyMongo下载及安装教程
Apr 27 #Python
Python操作MongoDB数据库PyMongo库使用方法
Apr 27 #Python
Python的函数的一些高阶特性
Apr 27 #Python
Python简单进程锁代码实例
Apr 27 #Python
在Python中使用列表生成式的教程
Apr 27 #Python
讲解Python中的递归函数
Apr 27 #Python
理解Python中函数的参数
Apr 27 #Python
You might like
PHP设计聊天室步步通
2006/10/09 PHP
PHP开发的一些注意点总结
2010/10/12 PHP
轻松掌握php设计模式之访问者模式
2016/09/23 PHP
PHP PDOStatement::setAttribute讲解
2019/02/01 PHP
Javascript中eval函数的使用方法与示例
2007/04/09 Javascript
封装好的省市地区联动控件附下载
2007/08/13 Javascript
JavaScript定时器和优化的取消定时器方法
2015/07/03 Javascript
javascript实现自动输出文本(打字特效)
2015/08/27 Javascript
JavaScript判断FileUpload控件上传文件类型
2015/09/28 Javascript
原生Aajax 和jQuery Ajax 写法个人总结
2017/03/24 jQuery
socket.io学习教程之基本应用(二)
2017/04/29 Javascript
vue+webpack中配置ESLint
2018/11/07 Javascript
layui.use模块外部使用其内部定义的js封装函数方法
2019/09/16 Javascript
js实现轮播图效果 z-index实现轮播图
2020/01/17 Javascript
JS实现电脑虚拟键盘的操作
2020/06/24 Javascript
javascript实现下拉菜单效果
2021/02/09 Javascript
[01:23:24]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Elephant BO3 第三场 2月7日
2021/03/11 DOTA
Python3爬虫爬取英雄联盟高清桌面壁纸功能示例【基于Scrapy框架】
2018/12/05 Python
python面试题小结附答案实例代码
2019/04/11 Python
python3 反射的四种基本方法解析
2019/08/26 Python
Python基于内置库pytesseract实现图片验证码识别功能
2020/02/24 Python
pycharm 对代码做静态检查操作
2020/06/09 Python
公认8个效率最高的爬虫框架
2020/07/28 Python
python中@property的作用和getter setter的解释
2020/12/22 Python
python 如何用urllib与服务端交互(发送和接收数据)
2021/03/04 Python
美国棒球装备和用品商店:Baseball Savings
2018/06/09 全球购物
结婚邀请函范文
2014/01/14 职场文书
小学毕业典礼主持词
2014/03/27 职场文书
大学生实习证明范本
2014/09/19 职场文书
2014年精神文明建设工作总结
2014/11/19 职场文书
2014社会治安综合治理工作总结
2014/12/04 职场文书
繁星春水读书笔记
2015/06/30 职场文书
2019经典广告词集锦!
2019/07/02 职场文书
创业计划之特色精品店
2019/08/12 职场文书
科学家研发出新型速效酶,可在 24 小时内降解塑料制品
2022/04/29 数码科技
nginx静态资源的服务器配置方法
2022/07/07 Servers