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的Django框架使用的一些实用建议
Apr 03 Python
Python爬虫实例爬取网站搞笑段子
Nov 08 Python
名片管理系统python版
Jan 11 Python
flask中的wtforms使用方法
Jul 21 Python
python中栈的原理及实现方法示例
Nov 27 Python
python正则表达式实例代码
Mar 03 Python
python实现在线翻译
Jun 18 Python
django跳转页面传参的实现
Sep 17 Python
详解Pycharm第三方库的安装及使用方法
Dec 29 Python
python绘制汉诺塔
Mar 01 Python
秀!学妹看见都惊呆的Python小招数!【详细语言特性使用技巧】
Apr 27 Python
Python查找算法的实现 (线性、二分,分块、插值查找算法)
Apr 24 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中的生成XML文件的4种方法分享
2012/10/06 PHP
使用php实现从身份证中提取生日
2016/05/09 PHP
jQuery 判断元素上是否绑定了事件
2009/10/28 Javascript
jQuery 打造动态渐变按钮 详细图文教程
2010/04/25 Javascript
jQuery:delegate中select()不起作用的解决方法(实例讲解)
2014/01/26 Javascript
node.js中的fs.rename方法使用说明
2014/12/16 Javascript
使用jQuery判断Div是否在可视区域的方法 判断div是否可见
2016/02/17 Javascript
Jquery实现$.fn.extend和$.extend函数
2016/04/14 Javascript
详解Node.js如何开发命令行工具
2016/08/14 Javascript
微信小程序 使用canvas制作K线实例详解
2017/01/12 Javascript
jQuery 实现双击编辑表格功能
2017/06/19 jQuery
通过命令行生成vue项目框架的方法
2017/07/12 Javascript
基于elementUI使用v-model实现经纬度输入的vue组件
2019/05/12 Javascript
关于vue里页面的缓存详解
2019/11/04 Javascript
WEB前端性能优化的7大手段详解
2020/02/04 Javascript
微信小程序 button样式设置为图片的方法
2020/06/19 Javascript
使用Vant完成通知栏Notify的提示操作
2020/11/11 Javascript
[01:01:41]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Magma BO3 第二场 1月31日
2021/03/11 DOTA
Python中的两个内置模块介绍
2015/04/05 Python
Python 爬虫爬取指定博客的所有文章
2016/02/17 Python
python 换位密码算法的实例详解
2017/07/19 Python
python enumerate函数的使用方法总结
2017/11/15 Python
Python使用matplotlib绘制正弦和余弦曲线的方法示例
2018/01/06 Python
python matplotlib 注释文本箭头简单代码示例
2018/01/08 Python
Python 获取div标签中的文字实例
2018/12/20 Python
python3.4爬虫demo
2019/01/22 Python
python原类、类的创建过程与方法详解
2019/07/19 Python
基于python解线性矩阵方程(numpy中的matrix类)
2019/10/21 Python
Python实现发票自动校核微信机器人的方法
2020/05/22 Python
Python爬虫+Tkinter制作一个翻译软件的示例
2021/02/20 Python
日本钓鱼渔具和户外用品网上商店:naturum
2016/08/07 全球购物
工程安全生产协议书
2014/11/21 职场文书
单位计划生育责任书
2015/05/09 职场文书
上诉状格式
2015/05/23 职场文书
PySwarms(Python粒子群优化工具包)的使用:GlobalBestPSO例子解析
2021/04/05 Python
Vue Element-ui表单校验规则实现
2021/07/09 Vue.js