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 相关文章推荐
Python3读取UTF-8文件及统计文件行数的方法
May 22 Python
Python提取Linux内核源代码的目录结构实现方法
Jun 24 Python
利用python3随机生成中文字符的实现方法
Nov 24 Python
对python程序内存泄漏调试的记录
Jun 11 Python
Python3如何对urllib和urllib2进行重构
Nov 25 Python
Pytorch 神经网络—自定义数据集上实现教程
Jan 07 Python
基于python实现MQTT发布订阅过程原理解析
Jul 27 Python
Python同时处理多个异常的方法
Jul 28 Python
Python自动化测试中yaml文件读取操作
Aug 20 Python
python实现画图工具
Aug 27 Python
如何利用python和DOS获取wifi密码
Mar 31 Python
尝试使用Python爬取城市租房信息
Apr 12 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
2006/10/09 PHP
在任意字符集下正常显示网页的方法二(续)
2007/04/01 PHP
完美解决:Apache启动问题―(OS 10022)提供了一个无效的参数
2013/06/08 PHP
MyEclipse常用配置图文教程
2014/09/11 PHP
PHP页面间传递值和保持值的方法
2016/08/24 PHP
laravel migrate初学常见错误的解决方法
2017/10/11 PHP
实现laravel 插入操作日志到数据库的方法
2019/10/11 PHP
锋利的jQuery jQuery中的DOM操作
2010/03/21 Javascript
js中document.getElementByid、document.all和document.layers区分介绍
2011/12/08 Javascript
关于jQuery UI 使用心得及技巧
2012/10/10 Javascript
从零学JSON之JSON数据结构
2014/05/19 Javascript
javascript html5摇一摇功能的实现
2016/04/19 Javascript
Bootstrap carousel轮转图的使用实例详解
2016/05/17 Javascript
Javascript 实现 Excel 导入生成图表功能
2018/10/22 Javascript
vue集成chart.js的实现方法
2019/08/20 Javascript
js实现时间日期校验
2020/05/26 Javascript
[04:53]DOTA2英雄基础教程 祈求者
2014/01/03 DOTA
[01:11:15]VGJ.S vs Secret 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
[55:56]NB vs Infamous 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.22
2019/09/05 DOTA
python基于右递归解决八皇后问题的方法
2015/05/25 Python
python实现爬虫统计学校BBS男女比例之多线程爬虫(二)
2015/12/31 Python
Python数据结构与算法之链表定义与用法实例详解【单链表、循环链表】
2017/09/28 Python
Sanic框架Cookies操作示例
2018/07/17 Python
python中嵌套函数的实操步骤
2019/02/27 Python
解决tensorflow训练时内存持续增加并占满的问题
2020/01/19 Python
Python基于requests库爬取网站信息
2020/03/02 Python
python如何处理程序无法打开
2020/06/16 Python
用python写一个带有gui界面的密码生成器
2020/11/06 Python
matplotlib部件之矩形选区(RectangleSelector)的实现
2021/02/01 Python
深入剖析HTML5 内联框架iFrame
2016/05/04 HTML / CSS
程序员岗位职责
2013/11/11 职场文书
交警作风整顿剖析材料
2014/10/11 职场文书
边城读书笔记
2015/06/29 职场文书
优秀班干部主要事迹材料
2015/11/04 职场文书
Python中可变和不可变对象的深入讲解
2021/08/02 Python
python基础之模块的导入
2021/10/24 Python