PyMongo安装使用笔记
admin
2023-07-31 02:23:55
0

这里是简单的安装和使用记录,首先要有一个可用的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操作等以后在总结。

相关内容

热门资讯

Mobi、epub格式电子书如... 在wps里全局设置里有一个文件关联,打开,勾选电子书文件选项就可以了。
定时清理删除C:\Progra... C:\Program Files (x86)下面很多scoped_dir开头的文件夹 写个批处理 定...
scoped_dir32_70... 一台虚拟机C盘总是莫名奇妙的空间用完,导致很多软件没法再运行。经过仔细检查发现是C:\Program...
500 行 Python 代码... 语法分析器描述了一个句子的语法结构,用来帮助其他的应用进行推理。自然语言引入了很多意外的歧义,以我们...
小程序支付时提示:appid和... [Q]小程序支付时提示:appid和mch_id不匹配 [A]小程序和微信支付没有进行关联,访问“小...
65536是2的几次方 计算2... 65536是2的16次方:65536=2⁶ 65536是256的2次方:65536=256 6553...
pycparser 是一个用... `pycparser` 是一个用 Python 编写的 C 语言解析器。它可以用来解析 C 代码并构...
微信小程序使用slider实现... 众所周知哈,微信小程序里面的音频播放是没有进度条的,但最近有个项目呢,客户要求音频要有进度条控制,所...
Apache Doris 2.... 亲爱的社区小伙伴们,我们很高兴地向大家宣布,Apache Doris 2.0.0 版本已于...
python清除字符串里非数字... 本文实例讲述了python清除字符串里非数字字符的方法。分享给大家供大家参考。具体如下: impor...