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 相关文章推荐
简介Django框架中可使用的各类缓存
Jul 23 Python
在Mac OS系统上安装Python的Pillow库的教程
Nov 20 Python
在windows下快速搭建web.py开发框架方法
Apr 22 Python
Python中字符串的常见操作技巧总结
Jul 28 Python
python图书管理系统
Apr 05 Python
Python中文件的写入读取以及附加文字方法
Jan 23 Python
Python3中exp()函数用法分析
Feb 19 Python
python Jupyter运行时间实例过程解析
Dec 13 Python
Python StringIO如何在内存中读写str
Jan 07 Python
利用keras使用神经网络预测销量操作
Jul 07 Python
python进行二次方程式计算的实例讲解
Dec 06 Python
Pytorch distributed 多卡并行载入模型操作
Jun 05 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.ini中的php-5.2.0配置指令详解
2008/03/27 PHP
ThinkPHP3.1基础知识快速入门
2014/06/19 PHP
详解Yaf框架PHPUnit集成测试方法
2017/12/27 PHP
提高网站信任度的技巧
2008/10/17 Javascript
jquery $.ajax各个事件执行顺序
2010/10/15 Javascript
url参数中有+、空格、=、%、&、#等特殊符号的问题解决
2013/05/15 Javascript
javascript中style.left和offsetLeft的用法说明
2014/03/07 Javascript
如何让你的Lightbox支持滚轮缩放及Base64图片
2014/12/04 Javascript
JS实现合并两个数组并去除重复项只留一个的方法
2015/12/17 Javascript
GitHub上一些实用的JavaScript的文件压缩解压缩库推荐
2016/03/13 Javascript
JS获取一个未知DIV高度的方法
2016/08/09 Javascript
jquery.validate表单验证插件使用方法解析
2016/11/07 Javascript
vue中axios处理http发送请求的示例(Post和get)
2017/10/13 Javascript
JavaScript设计模式之构造函数模式实例教程
2018/07/02 Javascript
[01:19:33]DOTA2-DPC中国联赛 正赛 iG vs VG BO3 第一场 2月2日
2021/03/11 DOTA
Python爬虫爬验证码实现功能详解
2016/04/14 Python
Python处理JSON数据并生成条形图
2016/08/05 Python
python3实现ftp服务功能(服务端 For Linux)
2017/03/24 Python
Python中用字符串调用函数或方法示例代码
2017/08/04 Python
基于Python socket的端口扫描程序实例代码
2018/02/09 Python
在Python文件中指定Python解释器的方法
2019/02/18 Python
Python从文件中读取指定的行以及在文件指定位置写入
2019/09/06 Python
python如何获取apk的packagename和activity
2020/01/10 Python
使用Python将Exception异常错误堆栈信息写入日志文件
2020/04/08 Python
浅谈Python3中print函数的换行
2020/08/05 Python
Django实现随机图形验证码的示例
2020/10/15 Python
Marks & Spencer爱尔兰:英国马莎百货
2016/04/20 全球购物
夜大毕业生自我鉴定
2013/10/31 职场文书
土木工程毕业生自荐信
2013/11/12 职场文书
学生就业推荐信
2013/11/13 职场文书
新颖的化妆品活动方案
2014/08/21 职场文书
群众路线班子对照检查材料
2014/09/25 职场文书
电影地道战观后感
2015/06/04 职场文书
学困生帮扶工作总结
2015/08/13 职场文书
springboot中rabbitmq实现消息可靠性机制详解
2021/09/25 Java/Android
mybatis-plus模糊查询指定字段
2022/04/28 Java/Android