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 28 Python
Python中的多行注释文档编写风格汇总
Jun 16 Python
在PyCharm环境中使用Jupyter Notebook的两种方法总结
May 24 Python
Python生成器generator用法示例
Aug 10 Python
selenium+python实现1688网站验证码图片的截取功能
Aug 14 Python
Python3实现爬取简书首页文章标题和文章链接的方法【测试可用】
Dec 11 Python
Python 存储字符串时节省空间的方法
Apr 23 Python
关于Python作用域自学总结
Jun 10 Python
python3+django2开发一个简单的人员管理系统过程详解
Jul 23 Python
Python 代码调试技巧示例代码
Aug 11 Python
python使用scapy模块实现ping扫描的过程详解
Jan 21 Python
python实现b站直播自动发送弹幕功能
Feb 20 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
php5 图片验证码实现代码
2009/12/11 PHP
php获取QQ头像并显示的方法
2014/12/23 PHP
Thinkphp3.2.3分页使用实例解析
2016/07/28 PHP
php连接mysql数据库最简单的实现方法
2019/09/24 PHP
JS 自定义函数缺省值的设置方法
2010/05/05 Javascript
用jquery实现的模拟QQ邮箱里的收件人选取及其他效果(一)
2011/01/06 Javascript
DOM2非标准但却支持很好的几个属性小结
2012/01/21 Javascript
cument.execCommand()用法深入理解
2012/12/04 Javascript
jQuery弹出层始终垂直居中相对于屏幕或当前窗口
2013/04/01 Javascript
js写一个字符串转成驼峰的实例
2013/06/21 Javascript
js Date概念详细介绍
2013/11/22 Javascript
通过url查找a元素应用案例
2014/04/29 Javascript
jquery实现多行文字图片滚动效果示例代码
2014/10/10 Javascript
js数组常见操作及数组与字符串相互转化实例详解
2015/11/10 Javascript
jQuery轻松实现表格的隔行变色和点击行变色的实例代码
2016/05/09 Javascript
Json解析的方法小结
2016/06/22 Javascript
AngularJs  Understanding Angular Templates
2016/09/02 Javascript
JS判断微信扫码的方法
2017/08/07 Javascript
Vue.set() this.$set()引发的视图更新思考及注意事项
2018/08/30 Javascript
微信小程序websocket实现即时聊天功能
2019/05/21 Javascript
layui 上传文件_批量导入数据UI的方法
2019/09/23 Javascript
你不可不知的Vue.js列表渲染详解
2019/10/01 Javascript
微信小程序实现锚点功能
2019/11/20 Javascript
JS实现京东商品分类侧边栏
2020/12/11 Javascript
剖析Python的Tornado框架中session支持的实现代码
2015/08/21 Python
对python中的logger模块全面讲解
2018/04/28 Python
Django框架封装外部函数示例
2019/05/28 Python
django haystack实现全文检索的示例代码
2020/06/24 Python
Hotels.com韩国:海外国内旅行所需的酒店和住宿预订网站
2020/05/08 全球购物
家长评语和期望
2014/02/10 职场文书
植树节标语
2014/06/27 职场文书
教师创先争优承诺书
2015/04/27 职场文书
合同纠纷调解书
2015/05/20 职场文书
销售口号霸气押韵
2015/12/24 职场文书
在pycharm中无法import所安装的库解决方案
2021/05/31 Python
Vue vee-validate插件的简单使用
2021/06/22 Vue.js