• Mongodb数据库及用python操作


    MongoDB基础知识与操作

    1、什么是mongoDB

    MongoDB是面向文档的NoSQL数据库,经常被用于存储非关系型的数据库,常用MongoDB存储web服务日志,或用来存储爬虫内容

    MySQL是数据库,SQL是领域型语言,操作数据库
    2、MongoDb创建数据库
    use database_name
    use test
    db
    show dbs

    插入数据
    Mongodb中没有直接创建表的命令,在MongoDb中,建完数据库后可以直接往表中插入数据,表名在插入数据时指定

    db.collection.insert(doucment)
    db.user.insert({
    ‘name’:‘chenwuyou’,
    ‘age’:25
    })

    在mongodb中等于、小于、小于等于、大于、大于等于、不等于

    等于 db.col.find({“by”:“Mongodb入门教程”}).pretty()
    小于 db.col.find({“likes”:{KaTeX parse error: Expected 'EOF', got '}' at position 6: lt:50}̲}).pretty() 小于或…lte:50}}).pretty()
    大于 db.col.find({“likes”:{KaTeX parse error: Expected 'EOF', got '}' at position 6: gt:50}̲}).pretty() 大于或…gte:50}}).pretty()
    不等于 db.col.find({“likes”:{$ne:50}}).pretty()

    查询用户表中所有年龄大于等于25岁的用户,查询语句为:
    db.user.find({“age”:{$gte:25}},{“_id”:0}).pretty()

    排序

    在Mongodb中使用sort()方法对数据进行排序,sort()方法可通过参数指定排序的字段
    db.collection.find().sort({key:1})
    1表示升序,-1表示降序

    将所有年龄小于30岁的用户查询出来,并按照年龄升序排列
    db.user.find({“age”:{KaTeX parse error: Expected 'EOF', got '}' at position 6: lt:30}̲}).sort({age:1}…set:{‘age’:27}})

    删除操作
    db.col.remove({})
    db.col.find()

    python处理MongoDB

    import pymongo
    
    #连接mongodb
    client = pymongo.MongoClient(host='localhost',port=27017)
    
    # 或者 client = MongoClient('mongodb://localhost:27017/')
    
    #指定数据库,在Mongodb中可以建立多个数据库,需要指定操作哪个数据库。以test数据库为例
    db = client.test
    #db = client['test']
    #指定集合,下一步需要指定操作的集合
    collection = db.user
    #collection = db['user']
    
    #插入单条数据
    people = {
        'name':'chenwuyou',
        'age':26,
        'hobby':'code'
    }
    result = collection.insert_one(people)
    print(result)
    print(result.inserted_id)
    
    #插入多条数据
    people = {
        'name':'chenwuyou',
        'age':26,
        'hobby':'code'
    }
    people1 = {
        'name':'chenwuyou1',
        'age':26,
        'hobby':'code'
    }
    result = collection.insert_many([people,people1])
    print(result)
    print(result.inserted_ids)
    #查询可通过find_one()或find()方法,其中find_one()查询得到单个结果,find()则返回一个生成器对象
    result = collection.find_one({'name':'chenwuyou'})
    print('result:',result)
    #如果希望通过_id查询,需要构建出objectID对象,需要使用bson库
    from bson.objectid import ObjectId
    
    result = collection.find_one({'_id':ObjectId('631c2a5afafd42348f0f4625')})
    print(result)
    #对于多条数据的查询,可以使用find()方法,例如查询年龄大于20的数据
    results = collection.find({'age':{'$gt':20}})
    for result in results:
        print(result)
    #计数 统计查询结果有多少条数据,可以使用count()方法
    count = collection.estimated_document_count({'age':{'$gt':20}})
    print(count)
    #排序,升序使用pymongo.ASCENDING,降序使用DESCENDING
    results = collection.find().sort('name',pymongo.ASCENDING)
    print([result['name']for result in results])
    
    #更新,使用update方法,指定更新的条件和更新后的数据
    condition = {'name':'chenwuyou'}
    people = collection.find_one(condition)
    people['age'] = 28
    result = collection.update_one(condition,{'$set':people})
    print(result)
    print(result.matched_count,result.modified_count)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
  • 相关阅读:
    数据分析-Pandas数据的探查蜂窝图
    Windows独立安装程序此更新不适用于你的计算机怎么解决?
    DPDK-A3: KVM使用SRIOV和虚机使用DPDK
    如何向客户推广 API 商品数据接口,如何跟进项目和程序员对接?
    Linux服务器使用NTP服务同步时间
    划重点!CISA、FBI、NSA联合发布深度伪造威胁网络安全报告
    【重点文章】服务升级惨痛教训
    Shopify主题二次开发必备技能:全面指南和最佳实践
    React Hooks解析
    spring cache (Redis方式)
  • 原文地址:https://blog.csdn.net/mitudeniu/article/details/126819248