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求pi的方法
Oct 08 Python
Python文本相似性计算之编辑距离详解
Nov 28 Python
python多进程中的内存复制(实例讲解)
Jan 05 Python
Anaconda 离线安装 python 包的操作方法
Jun 11 Python
如何优雅地处理Django中的favicon.ico图标详解
Jul 05 Python
Python WSGI的深入理解
Aug 01 Python
python os模块简单应用示例
May 23 Python
Python+OpenCV+pyQt5录制双目摄像头视频的实例
Jun 28 Python
Python3+PyInstall+Sciter解决报错缺少dll、html等文件问题
Jul 15 Python
下载与当前Chrome对应的chromedriver.exe(用于python+selenium)
Jan 14 Python
Python使用pyexecjs代码案例解析
Jul 13 Python
Django 权限管理(permissions)与用户组(group)详解
Nov 30 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
DIY一个适配电脑声卡的动圈话筒放大器
2021/03/02 无线电
php4的彩蛋
2006/10/09 PHP
解析ajax事件的调用顺序
2013/06/17 PHP
php的array数组和使用实例简明教程(容易理解)
2014/03/20 PHP
如何让CI框架支持service层
2014/10/29 PHP
php实现网页上一页下一页翻页过程详解
2019/06/28 PHP
Laravel框架验证码类用法实例分析
2019/09/11 PHP
JavaScript高级程序设计 阅读笔记(二十一) JavaScript中的XML
2012/09/14 Javascript
事件冒泡是什么如何用jquery阻止事件冒泡
2013/03/20 Javascript
js sort 二维数组排序的用法小结
2014/01/24 Javascript
JavaScript实现关键字高亮功能
2014/11/12 Javascript
JavaScript实现向setTimeout执行代码传递参数的方法
2015/04/16 Javascript
javascript封装的sqlite操作类实例
2015/07/17 Javascript
SpringMVC返回json数据的三种方式
2015/12/10 Javascript
JavaScript学习总结之JS、AJAX应用
2016/01/29 Javascript
AngularJs Modules详解及示例代码
2016/09/01 Javascript
微信小程序 自己制作小组件实例详解
2016/12/22 Javascript
JavaScript Uploadify文件上传实例
2017/02/28 Javascript
jquery仿ps颜色拾取功能
2017/03/08 Javascript
vue.js 实现图片本地预览 裁剪 压缩 上传功能
2018/03/01 Javascript
小试SVG之新手小白入门教程
2019/01/08 Javascript
Vue中keep-alive组件作用详解
2020/02/04 Javascript
JS实现鼠标按下拖拽效果
2020/07/23 Javascript
Win7下Python与Tensorflow-CPU版开发环境的安装与配置过程
2018/01/04 Python
Python2和Python3的共存和切换使用
2019/04/12 Python
python函数修饰符@的使用方法解析
2019/09/02 Python
利用PyCharm操作Github(仓库新建、更新,代码回滚)
2019/12/18 Python
Python计算公交发车时间的完整代码
2020/02/12 Python
Python基于类路径字符串获取静态属性
2020/03/12 Python
TensorFlow固化模型的实现操作
2020/05/26 Python
浅谈TensorFlow中读取图像数据的三种方式
2020/06/30 Python
工厂门卫岗位职责范本
2014/04/04 职场文书
省级优秀班集体申报材料
2014/05/25 职场文书
离职证明范本(5篇)
2014/09/19 职场文书
高二学年自我鉴定范文(2篇)
2014/09/26 职场文书
mysql 索引的数据结构为什么要采用B+树
2022/04/26 MySQL