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下的subprocess模块的入门指引
Apr 16 Python
Python操作MySQL数据库9个实用实例
Dec 11 Python
Python连接PostgreSQL数据库的方法
Nov 28 Python
Python通过Django实现用户注册和邮箱验证功能代码
Dec 11 Python
Python中XlsxWriter模块简介与用法分析
Apr 24 Python
python中的二维列表实例详解
Jun 19 Python
对python list 遍历删除的正确方法详解
Jun 29 Python
python高级特性和高阶函数及使用详解
Oct 17 Python
用Python读取几十万行文本数据
Dec 24 Python
PyQt5使用QTimer实现电子时钟
Jul 29 Python
使用OpCode绕过Python沙箱的方法详解
Sep 03 Python
python range实例用法分享
Feb 06 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+mysql开源XNA 聚合程序发布 下载
2007/07/13 PHP
PHP 危险函数全解析
2009/09/09 PHP
PHP中数组的三种排序方法分享
2012/05/07 PHP
ThinkPHP之N方法实例详解
2014/06/20 PHP
遍历echsop的region表形成缓存的程序实例代码
2016/11/01 PHP
php获取flash尺寸详细数据的方法
2016/11/12 PHP
PHP实现的常规正则验证helper公共类完整实例
2017/04/27 PHP
PHP如何使用JWT做Api接口身份认证的实现
2020/02/03 PHP
jQuery下的几个你可能没用过的功能
2010/08/29 Javascript
jQuery 1.8 Release版本发布了
2012/08/14 Javascript
node.js中的console.warn方法使用说明
2014/12/09 Javascript
动态加载jQuery的两种方法实例分析
2015/07/17 Javascript
javascript实现动态标签云
2015/10/16 Javascript
Javascript中字符串replace方法的第二个参数探究
2016/12/05 Javascript
nodejs基础应用
2017/02/03 NodeJs
解决jquery validate 验证不通过后验证正确的信息仍残留在label上的方法
2019/08/27 jQuery
vue单应用在ios系统中实现微信分享功能操作
2020/09/07 Javascript
Python 可爱的大小写
2008/09/06 Python
python3获取当前文件的上一级目录实例
2018/04/26 Python
Django中间件拦截未登录url实例详解
2019/09/03 Python
浅谈pycharm使用及设置方法
2019/09/09 Python
PYQT5开启多个线程和窗口,多线程与多窗口的交互实例
2019/12/13 Python
Django框架配置mysql数据库实现过程
2020/04/22 Python
VSCode配合pipenv搞定虚拟环境的实现方法
2020/05/17 Python
css3制作动态进度条以及附加jQuery百分比数字显示
2012/12/13 HTML / CSS
澳大利亚首屈一指的在线购物目的地:Kogan.com
2017/02/02 全球购物
马德里著名的运动鞋商店:NOIRFONCE
2019/04/12 全球购物
土木工程应届生求职信
2013/10/31 职场文书
应届毕业生专业个人求职自荐信格式
2013/11/20 职场文书
房地产活动策划方案
2014/05/14 职场文书
信访工作经验交流材料
2014/05/23 职场文书
离婚答辩状范文
2015/05/22 职场文书
2016年机关单位节能宣传周活动总结
2016/04/05 职场文书
开学季:喜迎新生,迎新标语少不了
2019/11/07 职场文书
深入理解redis中multi与pipeline
2021/06/02 Redis