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使用内存zipfile对象在内存中打包文件示例
Apr 30 Python
Python最长公共子串算法实例
Mar 07 Python
基础的十进制按位运算总结与在Python中的计算示例
Jun 28 Python
Numpy中矩阵matrix读取一列的方法及数组和矩阵的相互转换实例
Jul 02 Python
使用python实现http及ftp服务进行数据传输的方法
Oct 26 Python
Python线程之定位与销毁的实现
Feb 17 Python
如何使用Python脚本实现文件拷贝
Nov 20 Python
python进程池实现的多进程文件夹copy器完整示例
Nov 27 Python
详解python 中in 的 用法
Dec 12 Python
python统计字符的个数代码实例
Feb 07 Python
利用Python将图片中扭曲矩形的复原
Sep 07 Python
python软件测试Jmeter性能测试JDBC Request(结合数据库)的使用详解
Jan 26 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 开发的 8 个技巧
2007/01/02 PHP
php对大文件进行读取操作的实现代码
2013/01/23 PHP
php中cookie的使用方法
2014/03/29 PHP
Adnroid 微信内置浏览器清除缓存
2016/07/11 PHP
PHP的PDO大对象(LOBs)
2019/01/27 PHP
js控制div及网页相关属性的代码
2009/12/19 Javascript
Jquery index()方法 获取相应元素索引值
2012/10/12 Javascript
jquery获取当前点击对象的value方法
2014/02/28 Javascript
jquery实现导航固定顶部的效果仿蘑菇街
2014/10/22 Javascript
jquery通过ajax加载一段文本内容的方法
2015/01/15 Javascript
jQuery的position()方法详解
2015/07/19 Javascript
javascript实现简单的页面右下角提示信息框
2015/07/31 Javascript
JS实现的几个常用算法
2016/11/12 Javascript
vuejs2.0实现分页组件使用$emit进行事件监听数据传递的方法
2017/02/22 Javascript
javaScript之split与join的区别(详解)
2017/11/08 Javascript
jQuery实现滚动到底部时自动加载更多的方法示例
2018/02/18 jQuery
vue实现树形菜单效果
2018/03/19 Javascript
vue嵌套路由与404重定向实现方法分析
2018/05/04 Javascript
ionic2.0双击返回键退出应用
2019/09/17 Javascript
node.js中fs文件系统模块的使用方法实例详解
2020/02/13 Javascript
python实现的DES加密算法和3DES加密算法实例
2015/06/03 Python
python清除指定目录内所有文件中script的方法
2015/06/30 Python
python pyinstaller 加载ui路径方法
2019/06/10 Python
python 计算一个字符串中所有数字的和实例
2019/06/11 Python
python调用其他文件函数或类的示例
2019/07/16 Python
python将时分秒转换成秒的实例
2019/12/07 Python
Python爬虫如何破解JS加密的Cookie
2020/11/19 Python
mac系统下安装pycharm、永久激活、中文汉化详细教程
2020/11/24 Python
葡萄牙航空官方网站:TAP Air Portugal
2019/10/31 全球购物
化工机械应届生求职信
2013/11/04 职场文书
办公室前台岗位职责范本
2013/12/10 职场文书
民族团结先进个人材料
2014/02/05 职场文书
《小草和大树》教学反思
2014/02/16 职场文书
2015年全国科普日活动总结
2015/03/23 职场文书
2015初中团支部工作总结
2015/07/21 职场文书
Go语言并发编程 sync.Once
2021/10/16 Golang