zoukankan      html  css  js  c++  java
  • python操作MongoDB数据库

    python操作MongoDB数据库需要用到pymongo的库。

    pip install pymongo

    使用时需要先导入库。

    import pymongo

    建立连接

    import pymongo
    client =pymongo.MongoClient(host="localhost",port=27017)

    指定数据库

    db=client['joe']

    指定集合

    collection=db['age']

    操作

    查找文档

    由于查找到的文档是一个迭代的对象,所以可用__next__()方法一个一个的取,同样也可以用for循环来操作,这里采用第二种。

    documents=collection.find()
    for data in documents:
        print(data)

    增加文档

    这里增加的文档要严格以类json的数据格式,以键值对的形式添加数据。

    collection.insert({'hellon':30})            #添加一条
    collection.insert([{"one":12},{"two":13}]) #添加多条

    删除文档

    collection.remove({"one":12})                #删除一条
    collection.remove({"hellon":30},{"two":13}) #删除多个数据,注意若库中存在两条{"hello":30}的数据会都删掉
    collection.remove({"one":12},multi=False)   #multi参数指定是否要删除多条数据,False代表删除一条

    修改文档

    collection.update({"one":12},{"name":"joe"})             #更新所有数据
    collection.update({"one":12},{"name":"joe"},multi=False)#更新一条数据,multi含义代表是否更新多条

    以上的方法在python3中官方已经不推荐使用,但是现在也是可已使用的,取而代之的是下面的方法,用法与上面的没有太大差别。

    查找

    find_ong() #查找一条文档
    find_many()#查找多条文档

    增加

    insert_one()#插入一条文档
    insert_many()#插入多条文档

    删除

    delete_one()#删除一条文档
    delete_many()#删除多条文档

    修改

    update_one()#更新一条文档
    update_many()#更新多条文档

    综合举例

    # -*- coding: utf-8 -*-
    # @Time    : 2018/9/8 10:27
    # @Author  : Joe
    # @Email   : 18842114496@163.com
    # @File    : 20180908.py
    # @Software: PyCharm
    # 将MongoDB的find, insert, update, remove方法封装成类
    import pymongo
    class MongoDB:
        def __init__(self,db_name):
            self.client=pymongo.MongoClient()
            self.db=self.client[db_name]
        def find(self,collection_name):
            document_data=self.db[collection_name].find()
            for data in document_data:
                print(data)
        def insert(self,collectionn_ame,documents,insert_many=False):
            if insert_many==False:
                self.db[collectionn_ame].insert_one(documents)
            else:
                self.db[collectionn_ame].insert_many(documents)
        def update(self,collection_name,documents_updated,document_update):
            self.db[collection_name].update(documents_updated,document_update)
        def remove(self,collection_name,delete_data,delete_many=False):
            if delete_many==False:
                self.db[collection_name].delete_one(delete_data)
            else:
                self.db[collection_name].delete_many(delete_data)
    if __name__=='__main__':
        mm=MongoDB('joe')
        mm.find('age')
        one={"one":"Jack"}
        many=[{"two":"Alex"},{"three":"Jerray"},{"four":"Helln"}]
        mm.insert('name',one,insert_many=False)
        mm.insert('name',many,insert_many=True)
        up1={"three":"Jerray"}
        up2={"age":20}
        mm.update('name',up1,up2)
        delete={"two":"Alex"}
        mm.remove('name',delete,delete_many=True)
  • 相关阅读:
    JID 2.0 RC4 发布,高性能的 Java 序列化库
    FBReaderJ 1.6.3 发布,Android 电子书阅读器
    Arquillian 1.0.3.Final 发布,单元测试框架
    JavaScript 的宏扩展 Sweet.js
    Hypertable 0.9.6.5 发布,分布式数据库
    JRuby 1.7.0 发布,默认使用 Ruby 1.9 模式
    httppp 1.4.0 发布,HTTP响应时间监控
    Redis 2.6.0 正式版发布,高性能K/V服务器
    OfficeFloor 2.5.0 发布,IoC 框架
    XWiki 4.3 首个里程碑发布
  • 原文地址:https://www.cnblogs.com/austinjoe/p/9615317.html
Copyright © 2011-2022 走看看