首页 > 其他 > 详细

pymongo 基本操作

时间:2020-02-23 17:59:34      阅读:76      评论:0      收藏:0      [点我收藏+]

Python MongoDB

pyMongo

Python 要连接 MongoDB 需要 MongoDB 驱动
安装pymongo:
pip3 install pymongo
指定安装版本
python3 -m pip3 install pymongo==3.5.1
更新pyMongo命令
python3 -m pip3 install --upgrade pymongo

连接、创建数据库、判断数据库是否存在

from pymongo import MongoClient

# 使用mongoclient创建一个连接:1.指定参数
# mongo_client=MongoClient(host='localhost',port=27017)
# 2.使用url方式连接
mongo_client=MongoClient("mongodb://localhost:27017/")
# 查看所有文档(数据库)
list_dbs=mongo_client.list_database_names()
# 选择文档
example=mongo_client['example']
# 如果集合存在则返回,反则创建:article
for i in example.list_collection_names():
    if i in 'article':
        print('{}文档存在'.format(i))

MongoDB的条件操作符
> $gt
< $lt
>= $gte
<= $lte
!= $ne
$in 在范围内
$nin 不在范围内
$regex 匹配正则
$exists 属性是否存在
$type 类型判断
$mod 数字取模操作
$text 文本查询
$where 高级条件查询

插入数据
db.collection.insert_one(数据)
mydict={‘title‘:‘新增标题‘,‘count‘:1}
insert_data=example_data.insert_one(mydict)
db.collection.insert_many(数据)
mydict={‘title‘:‘新增标题‘,‘count‘:1}
mydict2={‘title‘:‘新增2标题‘,‘count‘:2}
insert_data=example_data.insert_one([mydict,mydict2])

删除数据
db.collection.delete_one(查询条件)
del_one_data=example_data.delete_one({‘count‘:999})
db.collection.delete_many(查询条件)
del_many_data=example_data.delete_many({‘count‘:{‘$lt‘:800,‘$gt‘:700}})

修改数据(不存在即创建)
db.colleciton.update_one({查询条件},{$修改器:{修改值}})
update_one_data=example_data.update_one({‘count‘:{‘$lt‘:1000,‘$gt‘:900}},{‘$set‘:{‘title‘:‘IG合理的‘}})
db.colleciton.update_many({查询条件},{$修改器:{修改值}})
update_many_data=example_data.update_many({‘count‘:{‘$lt‘:1000,‘$gt‘:900}},{‘$set‘:{‘title‘:‘IG合理的‘}})

查询(limit、and、or)

# 对查询结果进行范围截取
limit_data=example['data'].find().limit(5)
# 查询全部
data=example['data'].find()
# 按AND条件查询指定字段数据
# 查询count字段大于8989的数据
data=example['data'].find({'count':{'$gt':8989}})
# 查询count字段大于8989和title大于8989的数据(and)
and_data=example['data'].find({'title':'新覆盖标题','count':{'$gt':8989}})
# 查询count大于550且小于650或title是修改多个标题
or_data=example['data'].find({'$or':[{'title':'修改多个标题','count':{'$gte':550,'$lte':650}}]})

数据排序+跳跃+范围

  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,与使用时的顺序无关

count大于9900并降序
sort_data=example_data.find({‘count‘:{‘$gt‘:9900}}).sort(‘count‘,-1)
count大于9900并降序只取前10条数据
sort_limit_data=example_data.find({‘count‘:{‘$gt‘:9900}}).sort(‘count‘,-1).limit(10)
先跳过90条数据,count大于900小于1000并降序只取前5条数据
sort_skip_limit_data=example_data.find({‘count‘:{‘$gt‘:900,‘$lt‘:1000}}).sort(‘count‘,-1).skip(90).limit(5)

$修改器和$字符特殊用法

(1)$set??修改某个字段的值
(2)$unset??删除字段
(3)$inc??引用增加
(4)针对数组操作:
???$push??在Array的最后一个位置中增加一个数据
???$pushAll??在Array的最后一个位置中增加多个数据
???$pull??删除Array中的指定单个元素
???$pullAll??删除Array中的指定多个元素
???$pop??删除Array中的第一个或者最后一个元素 整数是倒序删除 负数是正序删除
???$??存储当前(Array)符合条件的元素下标索引,只能存储最外层的索引位置

pymongo 基本操作

原文:https://www.cnblogs.com/Ink-kai/p/12350723.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!