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基础的更多相关文章

  1. pymongo基础使用方法

    本文通过文章同步功能推送至博客园,排版可能会有所错误,敬请见谅! 1.客户端初始化 初始化MongoDB客户端 client = pymongo.MongoClient('localhost',270 ...

  2. mongodb,Mysql,redis基础教程

    数据库基础 1:mongodb基础教程 1:pymongo基础教程  2:Mysql基础教程 3:redis基础教程

  3. python基础教程之pymongo库

    1. 引入 在这里我们来看一下Python3下MongoDB的存储操作,在本节开始之前请确保你已经安装好了MongoDB并启动了其服务,另外安装好了Python的PyMongo库. 1.  安装 pi ...

  4. pymongo(看后转载,在原基础上添加了类连接和简单调用)

    一.MongoDB 数据库操作 1. 连接数据库 import pymongo conn = pymongo.Connection() # 连接本机数据库 # conn = pymongo.Conne ...

  5. Python基础+Pythonweb+Python扩展+Python选修四大专题 超强麦子学院Python35G视频教程

    [保持在百度网盘中的, 可以在观看,嘿嘿 内容有点多,要想下载, 回复后就可以查看下载地址,资源收集不易,请好好珍惜] 下载地址:http://www.fu83.cc/ 感觉文章好,可以小手一抖 -- ...

  6. MongoDB的upsert状态判断和pymongo使用方法

    在mongo中,有一个命令非常的方便,就是upsert,顾名思义就是update+insert的作用 根据条件判断有无记录,有的话就更新记录,没有的话就插入一条记录 upsert的使用方法: Mong ...

  7. pymongo 学习总结

    1.简介 MongoDB是一种强大.灵活.追求性能.易扩展的数据存储方式.是面向文档的数据库,不是关系型数据库,是NoSQL(not only SQL)的一种.所谓的面向文档,就是将原来关系型数据库中 ...

  8. 爬虫基础(五)-----scrapy框架简介

    ---------------------------------------------------摆脱穷人思维 <五> :拓展自己的视野,适当做一些眼前''无用''的事情,防止进入只关 ...

  9. 第一阶段——CentOS6_Python3.6.1笔记(尚学堂-Python基础快速入门)+ 【补充】麦子-Python程序入门与进阶

    虚拟机环境: 设置网络 .修改网络地址 .设置网卡为nat模式 .确保物理机启动dhcp.net服务 .编辑文件:vim /etc/sysconfig/network-scripts/ifcfg-et ...

随机推荐

  1. JavaScript读取对象属性遇到的问题

    JavaScript中对于对象的属性存取方式有两种:“.”操作和[]操作. “.”操作属性名通常直接写,[]操作中属性的名字通常要加引号, 而当需要读取的对象属性名是一个变量的时候,一般使用[]操作, ...

  2. PHP源码安装后设置别名

    PHP源码安装后测试是否能正常运行 每次在php目录./bin./php调用php很不方便,可以设置别名(方法一) vi ~/.bash_profile     (修改根目录下这个文件) 设置完成后还 ...

  3. Java Spring Boot VS .NetCore (十) Java Interceptor vs .NetCore Interceptor

    Java Spring Boot VS .NetCore (一)来一个简单的 Hello World Java Spring Boot VS .NetCore (二)实现一个过滤器Filter Jav ...

  4. Pylon5 SDK搭配OpenCV使用入门

    本文假设已经安装了Basler官网提供的Pylon 目前最新的版本是5.0.5,如果上述链接打不开,请直接所有Basler官网下载,需要注意的是在安装Pylon5时要选择Developer模式,这样才 ...

  5. IntelliJ IDEA 中的Java程序目录结构

    --src 应用程序源代码与测试代码的根目录 --main 应用程序代码的源目录 --java 源代码 --resources 项目用到的资源文件 --test 测试程序代码的源目录 --java 测 ...

  6. yum和rpm

    rpm简介 这是一个数据库管理工具,可以通过读取数据库,判断软件是否已经安装,如果已经安装可以读取出来所有文件的所在位置等,并可以实现删除这些文件. rpm:RPM is Redhat Package ...

  7. Linux——目录和文件

    目录和文件

  8. 读取gzmt.csv文件,计算均值及概率

    问题: 读取gzmt.csv文件所有数据,选取收盘价格(倒数第二列),计算20天均值,权重取成交量(选做:时间权重为半衰期为15天):将该均值修剪为超过600的都设置为1000,并打印出该均值超过55 ...

  9. ubuntu16.04中supervisor安装与简单使用(转载)

    ubuntu16.04中supervisor安装与简单使用 supervisor 进程管理是可以让进程在后台运行,而不占用控制台影响使用 1. 安装 supervisor sudo apt insta ...

  10. Dapp开发教程一 Asch Dapp Hello World

    1 基本流程 Asch有三种net,localnet,testnet,mainnet,后两种是发布到线上的,可通过公网访问. 第一种localnet是运行在本地的.只有一个节点的私链,主要是为了方便本 ...