zoukankan      html  css  js  c++  java
  • Python操作MongoDB

    python操作MongoDB说明:
        1.pip install pymongo
        2.连接MongDB数据库

    import pymongo
    myclient=pymongo.MongoClient(host='127.0.0.1',port=27017)   #指定主机和端口号创建客户端
    mydb=myclient['dbtest']#数据库使用
     mycol=mydb['t1']#表(集合)使用

        3.集合操作:

            增:         

    (1)insert_one()----单条插入
        db.collection.insert_one({})
    (2)insert_many()----多条插入
        db.collection.insert_many([{},{}...])

            查:         

    (1)find()----查询符合条件的所有数据
        db.collection.find(查询条件)
    (2)find_one()----查询符合跳进的第一条数据
        db.collection.find_one(查询条件)

                查询关键字             

    (1)$and----并列查询
            db.collection.find({'$and':[{},{}...]})
    (2)$or----或条件查询
            db.collection.find({'$or':[{},{}...]})
    (3)$in----范围查询
            db.collection.find({field:{'$in':['',''...]}})
    (4)$all----子集查询
            db.collection.find({field:{'$all':['',''...]}})

                查询条件操作符             

    (1)$lt----小于
            db.collection.find({field:{'$lt':value}})
    (2)$gt----大于
            db.collection.find({field:{'$gt':value}})
    (3)$eq----等于
            db.collection.find({field:{'$eq':value}})
    (4)$lte----小于等于
            db.collection.find({field:{'$lte':value}})
    (5)$gte----大于等于
            db.collection.find({field:{'$gte':value}})
    (6)$ne----不等于
            db.collection.find({field:{'$ne':value}})

        数据排序+跳跃+范围: 

    (1)sort(filed,pymongo.ASCENDING/pymongo.DESCENDING)----对查询结果升序/降序排序
            db.collection.find({}).sort()
    (2)skip(num)----对查询结果进行跳跃取值
            db.collection.find({}).skip()
    (3)limit(num)----对查询结果进行范围截取
            db.collection.find({}).limit()
    (4)优先级:sort>skip>limit,与使用时的顺序无关
            db.collection.find({}).sort().skip().limit()
            db.collection.find({}).limit().sort().skip()
            db.collection.find({}).skip().sort().limit()
     改:         
    (1)update_one()----修改查询结果的第一条数据
        db.colleciton.update_one({查询条件},{$修改器:{修改值}})
    (2)update_many()----修改查询结果所有数据
        db.colleciton.update_many({查询条件},{$修改器:{修改值}})

               `$`修改器及`$`特殊用法:             

    (1)$set----修改某个字段的值
            db.colleciton.update_one({'name':'c','age':20},{'$set':{'hobby':['swim,dump','sing']}})
    (2)$unset---删除字段
            db.colleciton.update_one({'$and':[{'name':'c'},{'age':20}]},{"$unset":{'hobby':[1,2]}})
    (3)$inc----引用增加(先引用 后增加)
            db.colleciton.update_many({'name':{'$in':['d','e','f']}},{'$inc':{'age':2}})
    (4)针对数组操作:
        ①$push----在Array的最后一个位置中增加一个数据
            db.colleciton.update_one({'name':'b'},{'$push':{'hobby':['swim','sing']}})
        ②$pushAll----在Array的最后一个位置中增加多个数据
            mycol.update({'name':'c'},{'$pushAll':{'hobby':['sing','scrapy']}})#实际测试无法使用,报错:Unknown modifier: $pushAll
        ③$pull ----删除Array中的指定单个元素
            .update_one({'hobby':'run'},{'$pull':{'hobby':'eat'}})
        ④$pullAll ----删除Array中的指定多个元素
            mycol.update_many({'name':'b'},{'$pullAll':{'hobby':['swim','play']}})#实际测试每次只删除一个元素
        ⑤$pop----删除Array中的第一个或者最后一个元素 正数是倒序删除 负数是正序删除
            db.colleciton.update_many({'hobby':'run'},{'$pop':{'hobby':1}})
        ⑥$----存储当前(Array)符合条件的元素下标索引 ,只能存储最外层的 索引位置
            db.colleciton.update_many({'hobby':'run'},{'$set:{'hobby.$':'swim'}})

            删:         

    (1)delete_one()----删除查询结果的第一条数据
        db.colleciton.delete_one(查询条件)
    (2)delete_many()----删除查询结果的所有数据
        db.colleciton.delete_many(查询条件)

     相关资料学习: 

    菜鸟教程:https://www.runoob.com/python3/python-mongodb.html
  • 相关阅读:
    windows 资源管理器 运行非常缓慢或者无反应的解决办法
    RPC工作原理
    如何解决访问某些网站会跳出对话框标题为:address Book Viewer ,提示:"无法连接制定的目录服务.服务也许暂时不可用,或服务器名称不正确。"
    运行程序的时候出错MFC42D.dll找不到。
    谷歌金山词霸合作版升级后出现CBSText.dll故障
    Network drives trying to connect when offline
    解决任务挂起或冻结在Windows XP
    打开word或者office程序报错:Microsoft Visual C++ Runtime Library. Runtime Error!
    恢复officescan控制台密码
    excel中同时冻结窗格--冻结行列标题
  • 原文地址:https://www.cnblogs.com/open-yang/p/11205369.html
Copyright © 2011-2022 走看看