pymongo基础
PyMongo是MongoDB数据库的python模块
MongoDB是由C++语音编写的非关系型数据库,是一个基于分布式文件存储的开源数据库系统。
win10 安装 4.0
使用官网的配置
使用 net start mongodb 查看是否启动成功
import pymongo
client = pymongo.MongoClient("localhost",27017) #连接数据库
test = client["test"] #使用test数据库
students = test["students"] #使用students表格 #数据
def data_portion():
insert_data_1 = {"id":"",
"name":"小明",
"age":12}
insert_data_2 = {"id":"",
"name":"小红",
"age":11}
insert_data_3 = {"id":"",
"name":"小强",
"age":12}
data = [insert_data_1, insert_data_2, insert_data_3]
return data
#插入数据
def insert_portion(data):
students.insert_many(data) #插入数据
results = students.find() #查看所以数据,返回一个生成器对象
for result in results:
print(result["name"])
print("当前数据一共有: " + str(students.count()) + "条") #删除数据
def remove_portion():
print("remove------------------------------") remove_dates = students.find({"age":{"$ne":12}}) # $ne:不等于
print("匹配条数: " + str(remove_dates.count()) + "条")
for remove_date in remove_dates:
students.delete_one(remove_date) #查找数据
def find_portion():
print("find------------------------------")
count = students.find().count()
print("数据一共有: " + str(count) + "条")
finds = students.find()
print("分别是:")
for find in finds.sort("id",pymongo.ASCENDING):
print(find) #排序截取数据
def sort_skip_portion():
print("sort_skip------------------------------")
#排序 : sort(按照谁排序,排序方式)。升序:ASCENDING,降序:DESCENDING
#偏移 : skip(偏移数量) #限制 : limit(限制个数)
results = students.find().sort("id",pymongo.ASCENDING).skip(2).limit(2)
print([result["name"] for result in results]) #遍历并以列表方式储存 #更新数据
def update_portion():
# update用法官网不推荐使用
# update语句需要 $ 操作
print("update------------------------------") def first_find_portion():
# update_one的使用
find = {"id":""}
replace = {"$set":{"id":"clear"}}
# update(替换对象,替换内容)
update = students.update_one(find,replace)
print("匹配的条数: " + str(update.matched_count))
print("影响的条数: " + str(update.modified_count))
def second_find_portion():
# update_many的使用
find = {"id":{"$nin":["clear",""]}} # $nin : 不在范围
replace = {"$set":{"id":"be update"}}
update = students.update_many(find,replace)
print("匹配的条数: " + str(update.matched_count))
print("影响的条数: " + str(update.modified_count)) first_find_portion()
second_find_portion()
if __name__ == "__main__":
# 清空数据库数据
students.delete_many({"id":{"$ne":0}})
# 循环插入3次
for i in range(3):
# 调用函数
insert_portion(data_portion())
remove_portion()
sort_skip_portion()
update_portion()
find_portion()
下面为运行结果:
pymongo基础的更多相关文章
- pymongo基础使用方法
本文通过文章同步功能推送至博客园,排版可能会有所错误,敬请见谅! 1.客户端初始化 初始化MongoDB客户端 client = pymongo.MongoClient('localhost',270 ...
- mongodb,Mysql,redis基础教程
数据库基础 1:mongodb基础教程 1:pymongo基础教程 2:Mysql基础教程 3:redis基础教程
- python基础教程之pymongo库
1. 引入 在这里我们来看一下Python3下MongoDB的存储操作,在本节开始之前请确保你已经安装好了MongoDB并启动了其服务,另外安装好了Python的PyMongo库. 1. 安装 pi ...
- pymongo(看后转载,在原基础上添加了类连接和简单调用)
一.MongoDB 数据库操作 1. 连接数据库 import pymongo conn = pymongo.Connection() # 连接本机数据库 # conn = pymongo.Conne ...
- Python基础+Pythonweb+Python扩展+Python选修四大专题 超强麦子学院Python35G视频教程
[保持在百度网盘中的, 可以在观看,嘿嘿 内容有点多,要想下载, 回复后就可以查看下载地址,资源收集不易,请好好珍惜] 下载地址:http://www.fu83.cc/ 感觉文章好,可以小手一抖 -- ...
- MongoDB的upsert状态判断和pymongo使用方法
在mongo中,有一个命令非常的方便,就是upsert,顾名思义就是update+insert的作用 根据条件判断有无记录,有的话就更新记录,没有的话就插入一条记录 upsert的使用方法: Mong ...
- pymongo 学习总结
1.简介 MongoDB是一种强大.灵活.追求性能.易扩展的数据存储方式.是面向文档的数据库,不是关系型数据库,是NoSQL(not only SQL)的一种.所谓的面向文档,就是将原来关系型数据库中 ...
- 爬虫基础(五)-----scrapy框架简介
---------------------------------------------------摆脱穷人思维 <五> :拓展自己的视野,适当做一些眼前''无用''的事情,防止进入只关 ...
- 第一阶段——CentOS6_Python3.6.1笔记(尚学堂-Python基础快速入门)+ 【补充】麦子-Python程序入门与进阶
虚拟机环境: 设置网络 .修改网络地址 .设置网卡为nat模式 .确保物理机启动dhcp.net服务 .编辑文件:vim /etc/sysconfig/network-scripts/ifcfg-et ...
随机推荐
- Token令牌管理权限
什么是token HTTP是一种无状态的协议,也就是HTTP没法保存客户端的信息,没办法区分每次请求的不同. Token是服务器生成的一串字符,作为客户端请求的令牌.当第一次登陆后,服务器会分发Ton ...
- Javascript我学之三函数的参数
本文是金旭亮老师网易云课堂的课程笔记,记录下来,以供备忘 函数的参数 对于参数值,JavaScript不会进行类型检查,任何类型的值都可以被传递给参数. ...
- P1169 [ZJOI2007]棋盘制作 DP悬线法
题目描述 国际象棋是世界上最古老的博弈游戏之一,和中国的围棋.象棋以及日本的将棋同享盛名.据说国际象棋起源于易经的思想,棋盘是一个8 \times 88×8大小的黑白相间的方阵,对应八八六十四卦,黑白 ...
- debian安装redis
添加rc.local文件cat </etc/rc.local#!/bin/sh -eexit 0EOF cd /opt wget http://download.redis.io/release ...
- react + antd 实现打印功能(踩了不少坑)
最近在有网页打印需求,尝试了一下react的打印功能,遇到了不少的坑: 1.react本身有一些打印的组件,但都不好用,都是基于window.print(),但是window.print()如果直接打 ...
- Ubuntu在终端执行命令时出现的错误
1.在安装jdk时无意间结束了安装进程,然后就提示这个错误 E: 无法获得锁 /var/lib/dpkg/lock - open (11: 资源暂时不可用)E: 无法锁定管理目录(/var/lib/d ...
- Ubuntu14.04和16.04官方默认更新源sources.list和第三方源推荐(干货!)
不多说,直接上干货! 写在前面:笔者由于还在学校学习,学校没有开发给Linux用的上网客户端,所以只能用在windows系统中通过安装虚拟机运行linux比较方便,但没有外网,只有学校的教育网,所以我 ...
- python 进程间通信(上)
一 使用queue来实现进程间的内存共享 #_*_coding:utf-8_*_ from multiprocessing import Process,Queue import os,time d ...
- 【AtCoder】【组合数学】【模型转换】Colorful Balls(AGC012)
题意: 有n个球,每个球有两个值,一个是颜色,另一个是重量.可以进行如下的操作任意次: 1.选择两个颜色相同的球,如果这两个球的重量之和小于等于X,就交换这两个球: 2.选择两个颜色不同的球,如果这两 ...
- vue_实例_组件的生命周期
重绘重排 中重复出现的是 mounted(){...} beforeUpdate(){...} uptated(){...} 其他钩子函数只会出现一次 <!DOCTYPE html> & ...