pymongoDB -- python、mongodb交互

2018-12-30  本文已影响0人  暴走的金坤酸奶味

导入pymongo

import pymongo

创建数据库连接

  1. mongo_client = pymongo.MongoClient(host='127.0.0.1',port=27017)
  2. mongo_client = pymongo.MongoClient('mongodb://127.0.0.1:27017/' )
  3. mongodb开启权限(账号密码登录):
    mongo_client = pymongo.MongoClient('mongodb://username:password@ip:port')

选择数据库

db = mongo_client['数据库名称']

选择数据库下集合

col_name = db['集合名称']

插入数据库

def insert_data():
    document1 = {
            'title': 'this is a gril',
            'info': '1712B',
            'age': 18,
            'name': 'zhaowenzhu'
        }
    document2 = {
            'title': 'this is a gril',
            'info': '1712B',
            'age': 15,
            'name': 'zhaowenzhu'
        }
    document3 = {
        'title': 'this is a gril',
        'info': '1712B',
        'age': 12,
        'name': 'zhaowenzhu'
    }
   # 插入一条
    result = col_name.insert(document1)
    # result = col_name.insert_one(document1)
    # print(result) #5c25e4be11575e4a4b0d0a91
  # 插入多条
    result = col_name.insert([document1,document2,document3])
    result = col_name.insert_many([document1,document2])

删除数据库

def delete_data():

    #删除一条:
    #multi=True:可以删除多条数据,multi=False:删除一条 
    result = col_name.remove({'title':'斯巴达克斯'},multi=False)
    print(result) #{'ok': 1.0, 'n': 1}
    result = col_name.delete_one({'title':'斯巴达克斯'})
    print(result.deleted_count)
    #删除多条
    result = col_name.delete_many({'title':'斯巴达克斯2'})

更新

def update_data():
    """
    update
    :return:
    """
    #指定属性更新
    #multi=False:默认情况下,只会修改一条
    result = col_name.update({'title':'斯巴达克斯5'}, {'$set':{'info':'1712B'}} )

    #全文档更新
    #multi=False:默认情况下,只会修改一条
    #upsert=False:表示如果要更新的文档不在集合下,则什么都不做
    #upsert=True:表示如果要更新的文档不在集合下,则会插入一条新的文档
    result = col_name.update({'title':'斯巴达克斯5'}, {'name':'...','gender':'...','age':18})

    #update_one(单条)和update_many(多条)使用的时候一定要记得添加$set,
    # result = col_name.update_one({'name':'..'},{'$set':{'age':20,'class':'1712B'}})
    # col_name.update_many()

    #save方法可以保存也可以更新数据(指定_id)
    from bson.objectid import ObjectId
    #save会做全文档更新
   result = col_name.save({ '_id':ObjectId("5c26c01a11575e0bec8f0395"),'title':'this is a gril','info':'1712B', 'age':20,'name':'zhaowenzhu'})

    #如果_id不存在,则插入一条新数据
    result = col_name.save(
        {
            '_id': '1234567',
            'title': 'this is a gril',
            'info': '1712B',
            'age': 20,
            'name': 'zhaowenzhu'
        }
    )
    print(result)

查找


def find_data():
    """
    查找
    :return:
    """
    #查找所有
    result = col_name.find({})

    # #根据条件查找
    # result = col_name.find({'name':'555'})

    # #查找一条
    # result = col_name.find_one({'name':'123'})
    # print(result) #返回的是一个dict

    #limit:限制查询
    #skip:跳过
    #sort:排序 1:升序 -1:降序
    result = col_name.find({}).skip(2).limit(3).sort('age',-1)
    #要根据多个字段排序
    result = col_name.find({}).skip(2).limit(3).sort([('age',1),('years',1)])
    for i in result:
        print(i)
上一篇下一篇

猜你喜欢

热点阅读