首页 > 数据库 >[python] [mongoDB] pymongo -- 用python操作mongodb

[python] [mongoDB] pymongo -- 用python操作mongodb

时间:2024-02-20 11:34:53浏览次数:36  
标签:索引 python mongoDB Collection -- collection mongodb pymongo

官方文档

数据库格式

mongodb采用了BSON格式, 即database->collection->document, 在python中, pymongo使用字典来表示一个documnet; document可以包含python原生的数据类型, 比如datetime.datetime

连接数据库

MongoClient连接mongodb, 读取数据库, 集合和文档

CRUD

插入

Collection.insert_one()/insert_many()
插入一条/一组数据, _id会自动生成
注意插入的一条数据是字典, 一组数据是包含字典的数组
https://pymongo.readthedocs.io/en/stable/api/pymongo/collection.html#pymongo.collection.Collection.insert_one

读取

Collection.find()返回多条数据
Collection.find_one()只返回满足条件的第一条数据, 参数和原生mongo类似
https://pymongo.readthedocs.io/en/stable/api/pymongo/collection.html#pymongo.collection.Collection.find_one
pymongo还提供了更多类似'查找并删除'这样的功能, 看文档

计数

Collection.count_documents(), 跟mongodb的countDocuments()一样

筛选条件

相当于sql中的'where', mongo中是将过滤条件写进集合, 作为过滤字段的属性值, 一个字段的多个条件可以写在一起, 逗号分开; 多个字段进行过滤, 每1个字段作为单个BSON对象, 所有对象集合在一个数组里

索引

mongodb自动在_id字段上创建索引, 也可以用Collection.create_index()创建新的索引, 通过传入的配置参数决定是哪一类索引(mongodb支持多种索引)

标签:索引,python,mongoDB,Collection,--,collection,mongodb,pymongo
From: https://www.cnblogs.com/Akira300000/p/18018572

相关文章

  • 没有面向对象,你以为可以为所欲为吗 ?
     工作一年的你,新建一个控制器,引入数据库对象,然后吭哧吭哧的完成业务逻辑,返回前端数据,完成了一天的工作的你感到有些不完美,觉得加个内存缓存会减少数据库的压力,当然加入redis后,更能让你小小的满足了一下,随着业务的数据的变大,你加上了消息队列,削峰填谷嘛,我们都懂。但是,代码里面......
  • Centos 7 图形化界面安装
     1.centos安装完成centos72.测试网络是否能进行链接重启网络。[root@localhost~]#servicenetworkrestart出现以下页面,则网络重启成功。 测试链接。[root@localhost~]#pingwww.baidu.com出现以下页面则可以链接网络,ctrl+c退出,进入步骤4。如果链接失......
  • 读后感_第九章
    该章讲了操作系统与应用的关系,通过时代的发展,人们发现了,程序中存在相通的地方,也出现了更多的功能。在此之前硬件一直是一个比较大的问题,而操作系统的存在可以缓解这种问题,比如在文件中写入字符串,一般用fputs()控制函数,将磁盘媒体转化为文件。Windows系统有以下特征,32位操作系统,可......
  • Max Sum
    VjudgeGivenasequencea[1],a[2],a[3]......a[n],yourjobistocalculatethemaxsumofasub-sequence.Forexample,given(6,-1,5,4,-7),themaxsuminthissequenceis6+(-1)+5+4=14.InputThefirstlineoftheinputcontainsanintegerT(......
  • Kotlin学习, 新手向,变量总汇,基于《第一行代码Android(第三版)》
    作者做的思维导图变量val和var区别valvalue不可变变量varvariable可变变量变量的自动类型推导(弱)vala=10;print("a="+a);变量的显式声明(强)vala:Int=10;数据类型注意和java不同,这些都是对象数据类型,大写开头:IntShortLongFloatDoubleB......
  • Qt 设置tabWidget选项卡靠右上
    tabWidget中,默认选项卡是在左上方的,如果通过QTabWidget中的属性调整位置,也只能是上下左右,及tabPosition中的东南西北 如果有需求需要其在右上方,则可以选择QWidget属性中的layoutDirection,改为RightToLeft 其他方向上如果想改变靠左靠右的顺序也是同理......
  • 大工程
    一个很典型的虚树题,把虚树建好。注意虚树上任意一条边表示原树中两个点的路径,而且这个路径上是没有关键点的,而且还有一个更关键的性质,就是这条路径上的树枝中的任何一个点也不是关键点,这一点下面会用到,主要是确定虚树中边权的大小那么最大最小的DP就跟求树的直径的DP非常像了,就不......
  • 浏览器快捷键记录,自用常用
    键盘快捷键:怎么恢复刚刚关闭的网页ctrl+shift+T打开浏览器历史记录ctrl+H怎么切换页面ctrl+Tap(下一个)ctrl+shift+tap(上一个)ctrl+1-9(单选)搜索内容ctrl+f鼠标快捷键鼠标中键点击上方标签页实现快速关闭等于点击x号鼠标中键点击链接......
  • RocketMQ搭建(单组节点单副本模式)
    RocketMQ搭建(单组节点单副本模式) 1、下载RocketMQ二进制包wgethttps://archive.apache.org/dist/rocketmq/5.1.2/rocketmq-all-5.1.2-bin-release.zip 2、解压,移动程序包至安装目录并创建软连接。unziprocketmq-all-5.1.2-bin-release.zipmvrocketmq-all-5.1.2-b......
  • C#调用HTTPS
    1、C#.NETCore使用HttpClient时忽略HTTPS证书最近项目遇到HttpClient请求代理时报SSL认证失败,解决方案记录 varhandler=newHttpClientHandler();handler.ServerCertificateCustomValidationCallback=delegate{returntrue;};varclient=newHttpClient(handler); ......