美文网首页
pymongoDB -- python、mongodb交互

pymongoDB -- python、mongodb交互

作者: 牛耀 | 来源:发表于2018-12-30 16:05 被阅读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)
    

    相关文章

      网友评论

          本文标题:pymongoDB -- python、mongodb交互

          本文链接:https://www.haomeiwen.com/subject/zipvlqtx.html