zoukankan      html  css  js  c++  java
  • mongodb与python随手记

    在python中使用pymongo连接mongodb数据库.

    基本代码如下:

    from pymongo import MongoClient
    
    client = MongoClient('127.0.0.1', 27017) # mongodb的地址
    db_name = 'myfirstmongo'                 # 数据库的名字
    db = client[db_name]                     # 现在db就是这个数据库了
    collection = db['testone']               # 'testone'是集合的名字,现在collection就是我们要用的集合了

    查询一条数据和简单的分页操作:

    import json
    from bson import json_util as jsonb
    
    def get_data_by_key(key):
        item = collection.find({"key":key})         # 直接用集合查询,find是mongo的方法
        # print item                                # 查询返回的item是一个对象,打印出来是<pymongo.cursor.Cursor object at 0x7f5d9bbc6f50>
        info = jsonb.dumps(item)                    # 使用bjson将对象转换成可读的形式,现在的info是str类型
        data = json.loads(info)                     # 使用json将字符串转换成python的相应类型,这里data是list列表
        return data
    
    def get_page_data(page):
        page_len = 20                               # page_len是一页的长度,也可以作为参数传进来
        skp = (int(page)-1)*page_len                # skip是为了只查询某一页的,跳过之前的数据
        item = collection.find().skip(skp).limit(page_len)  # 从skp开始,查询page_len条数据
        info = jsonb.dumps(item)                    # 处理数据
        data = json.loads(info)                     # 处理数据
    return data
    get_data_by_key是通过某一个条件查询,也可以多条件查询.要注意key的数据类型.
    增删改等操作与上面过程类似,只需修改collection对应的操作函数.
    删除数据:collection.find_one_and_delete({'key':key}),或者collection.remove({'key':key})
    谨慎使用remove(),她的括号里为空时,会删掉集合里面的所有数据;
    增加数据:collection.insert({'key':'123','msg':'test'}),也可插入多条,将多条数据放入列表中,将列表传入insert()即可;
    更新数据:collection.update({'key':'123'},{'msg':'new'},True,True),
    update参数含义:第一个是查询参数,第二个是要更新的内容,第三个是决定在没有查到该条数据时是否创建,第四个是查询到多条数据时是否都要更改;
    更新数据还可以使用修改器,这里不做记录了.
  • 相关阅读:
    Docker安装及简单使用
    常用编程语言注释符
    常用正则标记
    Android studio 使用startService报错:IllegalStateException
    Mybatis映射文件中#取值时指定参数相关规则
    IDEA Maven项目的Mybatis逆向工程
    循环结构
    每日思考(2020/03/05)
    分支结构
    每日思考(2020/03/04)
  • 原文地址:https://www.cnblogs.com/masako/p/6846717.html
Copyright © 2011-2022 走看看