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 list中append()与extend()用法分享
Mar 24 Python
python创建临时文件夹的方法
Jul 06 Python
Python实现把json格式转换成文本或sql文件
Jul 10 Python
python动态网页批量爬取
Feb 14 Python
Python加密方法小结【md5,base64,sha1】
Jul 13 Python
Python列表删除的三种方法代码分享
Oct 31 Python
Django的分页器实例(paginator)
Dec 01 Python
Python编程pygame模块实现移动的小车示例代码
Jan 03 Python
在PyCharm中三步完成PyPy解释器的配置的方法
Oct 29 Python
python 实现分页显示从es中获取的数据方法
Dec 26 Python
Python日志:自定义输出字段 json格式输出方式
Apr 27 Python
Python使用pyenv实现多环境管理
Feb 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的access操作类
2008/04/09 PHP
不重新编译PHP为php增加openssl模块的方法
2011/06/14 PHP
PHP开发者常犯的10个MySQL错误更正剖析
2012/01/30 PHP
利用谷歌 Translate API制作自己的翻译脚本
2014/06/04 PHP
ThinkPHP CURD方法之limit方法详解
2014/06/18 PHP
PHP实现mysqli批量执行多条语句的方法示例
2017/07/22 PHP
php探针使用原理和技巧讲解
2019/09/17 PHP
一个小型js框架myJSFrame附API使用帮助
2008/06/28 Javascript
经典海量jQuery插件 大家可以收藏一下
2010/02/07 Javascript
js实现的真正的iframe高度自适应(兼容IE,FF,Opera)
2010/03/07 Javascript
对setInterval在火狐和chrome切换标签产生奇怪的效果之探索,与解决方案!
2011/10/29 Javascript
jquery实现手机发送验证码的倒计时代码
2014/02/12 Javascript
JavaScript中字符串(string)转json的2种方法
2015/06/25 Javascript
JavaScript基础之AJAX简单的小demo
2017/01/29 Javascript
JS 插件dropload下拉刷新、上拉加载使用小结
2017/04/13 Javascript
vue2.0 keep-alive最佳实践
2017/07/06 Javascript
详解React Native 采用Fetch方式发送跨域POST请求
2017/11/15 Javascript
JS基于封装函数实现的表格分页完整示例
2018/06/26 Javascript
JS关闭子窗口并且刷新上一个窗口的实现示例
2020/03/10 Javascript
Jquery滑动门/tab切换实现方法完整示例
2020/06/05 jQuery
js实现简单的点名器随机色实例代码
2020/09/20 Javascript
vue.js实现点击图标放大离开时缩小的代码
2021/01/27 Vue.js
js实现简单图片拖拽效果
2021/02/22 Javascript
Python通过RabbitMQ服务器实现交换机功能的实例教程
2016/06/29 Python
基于python中staticmethod和classmethod的区别(详解)
2017/10/24 Python
python并发和异步编程实例
2018/11/15 Python
python多进程并行代码实例
2019/09/30 Python
PyTorch和Keras计算模型参数的例子
2020/01/02 Python
使用Python FastAPI构建Web服务的实现
2020/06/08 Python
Pytho爬虫中Requests设置请求头Headers的方法
2020/09/22 Python
HTML页面中添加Canvas标签示例
2015/01/01 HTML / CSS
美国电子产品主要品牌的授权在线零售商:DataVision
2019/03/23 全球购物
触发器(trigger)的功能都有哪些?写出一个触发器的例子
2012/09/17 面试题
单位人事专员介绍信
2014/01/11 职场文书
公司端午节活动方案
2014/02/04 职场文书
大学生标准自荐书
2014/06/15 职场文书