美文网首页
Python Mongodb 文档

Python Mongodb 文档

作者: 逍遥_yjz | 来源:发表于2021-07-12 14:13 被阅读0次

    mongodb
    MongoDB的数据库和集合能够自动创建

    • 安装模块
    pip install pymongo
    
    • demo
    #!/usr/bin/python3
    
    import pymongo
    
    myclient = pymongo.MongoClient("mongodb://localhost:27017/")
    mydb = myclient["runoobdb"]
    
    dblist = myclient.list_database_names()
    # dblist = myclient.database_names()
    print('开始')
    if "runoobdb" in dblist:
      print("数据库已存在!")
    
    mycol = mydb["sites"]
    
    mydict = {"name": "RUNOOB", "alexa": "10000", "url": "https://www.runoob.com"}
    
    # 插入数据
    def insertData():
        x = mycol.insert_one(mydict)
    
        # 插入多个文档
        mylist = [
            {"name": "Taobao", "alexa": "100", "url": "https://www.taobao.com"},
            {"name": "QQ", "alexa": "101", "url": "https://www.qq.com"},
            {"name": "Facebook", "alexa": "10", "url": "https://www.facebook.com"},
            {"name": "知乎", "alexa": "103", "url": "https://www.zhihu.com"},
            {"name": "Github", "alexa": "109", "url": "https://www.github.com"}
        ]
    
        x = mycol.insert_many(mylist)
    
        # 输出插入的所有文档对应的 _id 值
        print(x.inserted_ids)
    
    # 修改数据
    '''
    在 MongoDB 中使用 update_one() 方法修改文档中的记录。该方法第一个参数为查询的条件,第二个参数为要修改的字段。
    
    如果查找到的匹配数据多于一条,则只会修改第一条。
    '''
    
    def updateData():
        myquery = {"alexa": "10000"}
        newvalues = {"$set": {"alexa": "12345"}}
    
        mycol.update_one(myquery, newvalues)
    
        # 输出修改后的  "sites"  集合
        for x in mycol.find():
            print(x)
    
    
    '''
    如果要修改所有匹配到的记录,可以使用 update_many()。
    '''
    def updateManyData():
        myquery = {"name": {"$regex": "^F"}}
        newvalues = {"$set": {"alexa": "123"}}
    
        x = mycol.update_many(myquery, newvalues)
    
        print(x.modified_count, "文档已修改")
    
    '''
    sort() 方法可以指定升序或降序排序。
    
    sort() 方法第一个参数为要排序的字段,第二个字段指定排序规则,1 为升序,-1 为降序,默认为升序。
    '''
    def sortData():
        mydoc = mycol.find().sort("alexa")
        for x in mydoc:
            print(x)
        print('==========')
        mydoc = mycol.find().sort("alexa", -1)
    
        for x in mydoc:
            print(x)
    
    '''删除文档'''
    def deleteData():
        myquery = {"name": "Taobao"}
    
        mycol.delete_one(myquery)
    
        # 删除后输出
        for x in mycol.find():
            print(x)
    
        print('=========删除多个文档===============')
        myquery = {"name": {"$regex": "^F"}}
    
        x = mycol.delete_many(myquery)
    
        print(x.deleted_count, "个文档已删除")
    
        print('========删除集合中的所有文档========')
        x = mycol.delete_many({})
    
        print(x.deleted_count, "个文档已删除")
    
        print('========删除集合========')
        # 如果删除成功 drop() 返回 true,如果删除失败(集合不存在)则返回 false。
        mycol.drop()
    
    if __name__ == '__main__':
        #updateData()
    
        #updateManyData()
    
        #sortData()
    
        deleteData()
    

    相关文章

      网友评论

          本文标题:Python Mongodb 文档

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