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. 调用脚本的方式自动的创建或者是更新oracle数据库自带的Seq序列号的值

    执行脚本: CREATE OR REPLACE PACKAGE PKG_QUERY IS -- Author : ADMINISTRATOR -- Created : 2016/12/8 星期四 10 ...

  2. javascript中字符串的方法

    字符串的方法 charAt();返回字符串指定索引的字符: concat();连接两个或多个字符串: indexOf();返回字符串中检索指定字符第一次出现的位置: lastIndexOf();返回字 ...

  3. 文本框监听事件blur()的简单使用

    场景描述:在做编辑功能的时候,经常要判断编码,或者密码之类的是否已经被使用,以前自己做的时候,经常都是在提交了之后才判断的,到现在,才发现,这样做的用户体验不好,完美一点的做法就是当此文本框失去焦点的 ...

  4. 横向滑动的listview和其中用到的触摸监听事件详解

    一.首先把横向的listview的代码放上来 HorizontalListView: package com.common.cklibrary.utils.myview; import java.ut ...

  5. 数据挖掘算法——Apriori算法

    Apriori算法  首先,Apriori算法是关联规则挖掘中很基础也很经典的一个算法. 转载来自:链接:https://www.jianshu.com/p/26d61b83492e 所以做如下补充: ...

  6. 编程菜鸟的日记-初学尝试编程-C++ Primer Plus 第6章编程练习3

    #include <iostream> using namespace std; void showmenu(void) { cout<<"Please enter ...

  7. 新浪云SAE 关于部分函数不能使用的做法

    例如:file_put_contents("test.txt","Hello World. Testing!"); 可以这样写: file_put_conten ...

  8. 如何使用JavaScript实现纯前端读取和导出excel文件

    js-xlsx 介绍 由SheetJS出品的js-xlsx是一款非常方便的只需要纯JS即可读取和导出excel的工具库,功能强大,支持格式众多,支持xls.xlsx.ods(一种OpenOffice专 ...

  9. vue_条件渲染_v-if_v-else_v-show

    data: { ok: true flag: false } 1. 成对出现的 v-if 和 v-else 原理是: 标签的删除与重新创建 ,有些情况必须用 v-if <p v-if=" ...

  10. iview menu组件手动收起与展开

    本文主要介绍menu组件在有子菜单时如何手动的展开与收起. 展开: 在需要展开的地方先设置openname变量如this.openname = ["设置"]; 再在$nextTic ...