Python 操作 MongoDB 数据库!
作者 |黄伟呢
来源 |数据分析与统计学之美
MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。
先来看看MySQL与MongoDB 概念区别:
今天的重点,就是要为大家讲述如何使用Python操作MongoDB数据库。
在正式进行增删改查
之前,我们需要先获取一个叫做集合
的东西,它就像是mysql数据库中的表。
# 安装该库后,这里才能导入
from pymongo import MongoClient
# 连接服务器
conn = MongoClient("localhost",27017)
# 连接数据库
db = conn.mydb
# 获取集合
collection = db.student... 中间进行一系列操作:增删改查 ...# 断开连接【最后一步】
conn.close()
注意:Python 中写MongoDB代码和在MongoDB客户端写的代码格式一样。
区别在于:在Python中写MongoDB代码,所有“键”都需要添加引号。
插入文档
① 一次性插入一个文档
collection.insert_one({"name": "abc","age": 19,"gender": 1,"adress": "北京","isDelete": 0})
② 一次性插入多个文档
collection.insert_many([{"name": "abc1","age": 19,"gender": 1,"adress": "北京
","isDelete": 0},{"name": "abc2","age": 19,"gender": 1,"adress": "北京","isDelete":0}])
删除文档
# 删除某条文档
collection.remove({"name": "lilei"})# 不写条件,代表全部删除。不要轻易用
collection.remove()
修改文档
# 修改文档
collection.update({"name": "lilei"},{"$set": {"age": 25}})
查询文档
这里一共为大家列出了7条。
① 查询部分文档
res = collection.find({"age": {"$gte": 19}})
for row in res:print(row)
② 查询所有文档
res = collection.find()
for row in res:print(row)
③ 统计查询
res = collection.find().count()
print(res)
④ 根据 id 查询(这需要引入第三方库)
from bson.objectid import ObjectId
res = collection.find({"_id":ObjectId("5cc506289e1d88c95465488e")})
print(res[0])
⑤ 升序排序
res = collection.find().sort("age")
for row in res:print(row)
⑥ 降序排序(也需要引入第三方库)
import pymongo
res = collection.find().sort("age",pymongo.DESCENDING)
for row in res:print(row)
⑦ 分页查询
res = collection.find().limit(3).skip(5)
for row in res:print(row)
往
期
回
顾
资讯
观点:AI与自动化是矛盾的
资讯
阿里云投入 20 亿发力操作系统
资讯
阿里发布云芯片倚天710
技术
ST-GCN 实现人体姿态行为分类
分享
点收藏
点点赞
点在看
相关文章:

Linux下用汇编输出Hello, world
下列是Intel汇编语法实现的 Hello, world!程序。 ;; hello.asm ;; nasm -f elf hello.asm; will output hello.o ;; ld -s -o hello hello.o;; section, same to segment segment .data ; 数据段声明, 下列代码将放在数据段中msg db "Hello, world!", 0xA ; 要…

利用bigpipe机制实现页面模块的异步渲染 chunked技术
bigpipe基于HTTP/1.1 支持的chunked编码,可以由浏览器接收到服务器发送的chunked块后,立即解析该块代码。因为chunked编码使消息主体成块发送,每块有自己的大小指示器,在所有的块之后会紧接着一个可选的包含实体头域的尾部。这种编…

hibernate 全面学习【lazy策略 】
2019独角兽企业重金招聘Python工程师标准>>> lazy策略可以用在: * <class>标签上:可以取值true/false * <property>标签上,可以取值true/false,这个特性需要类增强 * <set>/<list>等集合上…

深度学习发现古人类遗址,AI 考古比胡八一更高效
作者 |神经星星来源 |HyperAI超神经By 超神经内容一览:伊利诺伊州立大学人类学专业考古方向的研究人员,将空间遥感技术和深度学习应用于古人类遗址的发掘和研究。关键词:考古 遥感 机器视觉考古,一直是个神秘又充满吸引力的话题。…

linux resource
1. centos repo https://centos.pkgs.org/转载于:https://www.cnblogs.com/gojoin/p/8241068.html

MySQL 水平分区方案Spock Proxy
Spock Proxy 是由实际项目产生的一个开源项目(Spock是Rails的应用,Speck Proxy应当可用于Rails之外的,例如PHP或.NET),基于MySQL Proxy开发,是MySQL Proxy的一个分支,支持range-based horizonta…

卷学历、卷加班……程序员拥有什么能力才能破局内卷?
全世界的天才程序员都在疯狂的造轮子,其它程序员只能被动的学习轮子,这简直就像一场绝地求生。程序员行业的内卷已是有目共睹,选择程序员作为职业的人越来越多;大厂对程序员的学历要求越来越高;程序员工作加班越来越严…

LeetCode - Maximum Depth of Binary Tree
递归求二叉树的最大深度。 /*** Definition for binary tree* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode(int x) { val x; }* }*/ public class Solution {public int maxDepth(TreeNode root) {if(root null)return 0…
2018年IT市场最大的技术趋势和热点预测
随着数字化,物联网(IoT)设备,区块链应用以及新的服务器战略日益普及,这可能会成为2018年最大的技术趋势。我们期待看到大量与边缘计算相关的新产品,即所谓的无服务器计算,智能家居,智…

哈希分布与一致性哈希算法简介
前言 在我们的日常web应用开发当中memcached可以算作是当今的标准开发配置了。相信memcache的基本原理大家也都了解过了,memcache虽然是分布式的应用服务,但分布的原则是由client端的api来决定的,api根据存储用的key以及已知的服务器列表&…

使用深度学习阅读和分类扫描文档
作者|小白来源|小白学视觉收集数据首先,我们要做的第一件事是创建一个简单的数据集,这样我们就可以测试我们工作流程的每一部分。理想情况下,我们的数据集将包含各种易读性和时间段的扫描文档,以及每个文档所属的高级主题。我找不…

无聊的时候,冷死了(六)
阁下长得真是天生励志!好久没有听到有人能把牛吹得这么清新脱俗了!你出生时就丑的躲起来了,连你父母都不敢见你,你还怕有人举报你?你拉着一头猪逛街,很幸福的样子,我经过满怀同情的说࿱…
Java EE 开发环境搭建
下载安装Java EE SDK 版本:Java Platform,Enterprise Edition 7 SDK (with JDK 7u45) 下载页面: http://www.oracle.com/technetwork/java/javaee/downloads/java-ee-7-sdk-with-jdk-u45-2066865.html 文件名:java_ee_sdk-7-jdk7-windows.exe…

memcacheq 服务安装与原理
memcacheQ是一个单纯的分布式消息队列服务。它的安装依赖于BerkeleyDB 和 libevent,所以要先安装这BerkeleyDB和libevent: 一,BerkeleyDB 下载软件包,http://download.oracle.com/berkeley-db/db-5.0.21.tar.gz解压缩后ÿ…

AI 帮忙找 Bug ,英特尔开源代码编程工具 ControlFlag
整理 | 孙胜出品 | CSDN近日,英特尔开源了自动代码调试工具 ControlFlag 源代码,ControlFlag 源码现在可通过 GitHub 获得。据了解,ControlFlag 可用来帮助更多开发者自主检测代码错误,主要利用 AI 自动识别软件和固件代码中的错误…

一次心惊肉跳的服务器误删文件的恢复过程
经历了两天不懈努力,终于恢复了一次误操作删除的生产服务器数据。对本次事故过程和解决办法记录在此,警醒自己,也提示别人莫犯此错。也希望遇到问题的朋友能找到一丝灵感解决问题。事故背景安排一个妹子在一台生产服务器上安装Oracle,妹子边研…

【vue】vue中ref用法
1.获取当前元素: 例子: <div class"pop pos-a" :style"{ left: pop_x px ,top: pop_y px}" ref"refName"><ul><li>编辑部门</li><li click"append()">添加子部门</li>&…

使用Gearman做分布式计算
通常,多语言多系统之间的集成是个大问题,一般来说,人们多半会采用WebService的方式来处理此类集成问题,但不管采用何种风格的WebService,如RPC风格,或者REST风格,其本身都有一定的复杂性。相比之…

把数据库中有关枚举项值的数字字符串转换成文字字符串
原文:把数据库中有关枚举项值的数字字符串转换成文字字符串标题可能无法表达我的本意。比如,有这样一个枚举: public enum MyChoice{MyFirstChoice 0,MySecondChoice 1,MyThirdChoice 2} 数据库中,某表某字段保存值为"0,1,2"&…

又被 AI 抢饭碗?2457 亿参数规模,全球最大中文人工智能巨量模型 “源1.0”正式开源...
作者 | 伍杏玲 出品 | AI科技大本营(ID:rgznai100)输入:昔我往矣,杨柳依依。今我来思,雨雪霏霏。行道迟迟,载渴载饥。我心伤悲,莫知我哀!(以战争为题写一首诗)…

Java架构演进之路
2019独角兽企业重金招聘Python工程师标准>>> hello 转载于:https://my.oschina.net/mrpei123/blog/1605391

F5与NetScaler比较
F5 是基于Linux的,NetScaler 是基于BSD的。F5 的四层走的是硬件芯片,七层走的是软件,NetScaler 全部走的是软件。我测试的性能也是 F5比NetScaler强,在均不使用压缩的情况下,NetScaler比F5消耗更大的带宽。

这个机器狗引起网友争议,「持枪机器狗」射程达1200米
编译 | 禾木木 出品 | AI科技大本营(ID:rgznai100) 如果提起自动机器狗,首先想到的应该是波士顿动力,自波士顿动力 Spot 推出以来,机器狗就解锁了很多应用场景。波士顿动力一直都禁止将机器狗武器化。 但是,…

nutch如何发布插件
为什么80%的码农都做不了架构师?>>> 1.修改插件,在原有的插件上修改,比如parse-html插件上修改。 2.修改插件之后,把第三方的包放到/nutch/runtime/local/lib下(经测试,只有在此目录下…

第 7 章 项目运作
comments powered by Disqus 原文出处:Netkiller 系列 手札 本文作者:陈景峯 转载请与作者联系,同时请务必标明文章原始出处和作者信息及本声明。

干货!整理了50个 Pandas 高频使用技巧,强烈建议收藏!
作者 | 俊欣来源 | 关于数据分析与可视化今天小编来分享在pandas当中经常会被用到的方法,篇幅可能有点长但是提供的都是干货,读者朋友们看完之后也可以点赞收藏,相信会对大家有所帮助,大致本文会讲述这些内容DataFrame初印象读取表…

CentOS的Gearman安装与使用无错版
通常,多语言多系统之间的集成是个大问题,一般来说,人们多半会采用WebService的方式来处理此类集成问题,但不管采用何种风格的WebService,如RPC风格,或者REST风格,其本身都有一定的复杂性。相比之…

putty或xshell上用vi/vim小键盘无法使用的解决方法
在putty或xshell上用vi/vim的时候,开NumLock时按小键盘上的数字键并不能输入数字,而是出现一个字母然后换行(实际上是命令模式上对应上下左右的键)。解决方法:putty:选项Terminal->Features里,找到Disable applicat…

Sqoop数据分析引擎安装与使用
Sqoop数据分析引擎安装与使用>什么是Sqoop ?Sqoop 是一个开源的数据处理引擎,主要是通过 JDBC 为媒介, 在Hadoop(Hive)与 传统的关系型数据库(Oracle, MySQL,Postgres等)间进行数据的传递HDFS Hive HBase < JD…

《独辟蹊径品内核:Linux内核源代码导读(china-pub首发)》的前言
我觉得作者讲的学习方法很好值得看看。 下面是本书作者所写: 几乎每一个操作系统内核的学习者在初学阶段都会感觉到难以入门。这是由于内核涉及到知识面非常广泛,需要学习者从根本上掌握大量的知识,这包括:程序编译,链…