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 13 Python
python使用PyGame绘制图像并保存为图片文件的方法
Apr 24 Python
python批量提取word内信息
Aug 09 Python
Python实现完整的事务操作示例
Jun 20 Python
python在非root权限下的安装方法
Jan 23 Python
python: 判断tuple、list、dict是否为空的方法
Oct 22 Python
Python hashlib加密模块常用方法解析
Dec 18 Python
Python实现i人事自动打卡的示例代码
Jan 09 Python
python中JWT用户认证的实现
May 18 Python
详解运行Python的神器Jupyter Notebook
Jun 03 Python
教你用python实现12306余票查询
Jun 30 Python
python中的3种定义类方法
Nov 27 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
Dedecms V3.1 生成HTML速度的优化办法
2007/03/18 PHP
PHP采用XML-RPC构造Web Service实例教程
2014/07/16 PHP
让网页根据不同IE版本显示不同的内容
2009/02/08 Javascript
jquery创建一个新的节点对象(自定义结构/内容)的好方法
2013/01/21 Javascript
JavaScript设计模式之建造者模式介绍
2014/12/28 Javascript
js实现仿Discuz文本框弹出层效果
2015/08/13 Javascript
跟我学习javascript的最新标准ES6
2015/11/20 Javascript
Angularjs 与 bower安装和使用详解
2017/05/11 Javascript
nodejs express配置自签名https服务器的方法
2018/05/22 NodeJs
一篇文章介绍redux、react-redux、redux-saga总结
2019/05/23 Javascript
vue-cli3添加模式配置多环境变量的方法
2019/06/05 Javascript
vue从一个页面跳转到另一个页面并携带参数的解决方法
2019/08/12 Javascript
vue.js 子组件无法获取父组件store值的解决方式
2019/11/08 Javascript
React 实现车牌键盘的示例代码
2019/12/20 Javascript
[03:33]TI9战队采访 - Infamous
2019/08/20 DOTA
详解Python正则表达式re模块
2019/03/19 Python
浅谈python常用程序算法
2019/03/22 Python
详解opencv中画圆circle函数和椭圆ellipse函数
2019/12/27 Python
python使用多线程查询数据库的实现示例
2020/08/17 Python
Python3如何在服务器打印资产信息
2020/08/27 Python
基于IE10/HTML5 开发
2013/04/22 HTML / CSS
微信浏览器取消缓存的方法
2015/03/28 HTML / CSS
基于html5绘制圆形多角图案
2016/04/21 HTML / CSS
cosme官方海外旗舰店:日本最大化妆品和美容产品的综合口碑网站
2017/01/18 全球购物
华为俄罗斯官方网上商城:购买Huawei手机和平板
2017/04/21 全球购物
Farah官方网站:男士服装及配件
2019/11/01 全球购物
岗位职责的定义
2013/11/10 职场文书
韩国商务邀请函
2014/01/14 职场文书
文秘自荐信
2014/06/28 职场文书
赔偿协议书怎么写
2015/01/28 职场文书
2015年城管个人工作总结范文
2015/04/20 职场文书
大学生实习证明
2015/06/16 职场文书
家属联谊会致辞
2015/07/31 职场文书
银行柜员优质服务心得体会
2016/01/22 职场文书
Redis 彻底禁用RDB持久化操作
2021/07/09 Redis
口袋妖怪冰系十大最强精灵,几何雪花排第七,第六类似北极熊
2022/03/18 日漫