MongoDB存储

1、链接MongoDB

       指定数据库

       指定集合

import pymongo

## 连接数据库
client = pymongo.MongoClient(host='localhost', port=27017)
## 指定数据库 kuluma
db = client.kuluma
## 指定集合
collection = db.mycol

  

2、数据库操作

①插入数据

## 插入数据
## insert_one 插入一条数据
student = {
'id':'190720157',
'name':'Amy',
'age':23,
'gender':'female'
}
result = collection.insert_one(student)
print(result) ## 返回 InsertOneResult 对象
print(result.inserted_id) ## 获取 MonggoDB 自动添加的标识符 _id :5ea5340ef3cd203fa1577e4e ## insert_many 插入多条数据
student1 = {
'id':'190720158',
'name':'Lily',
'age':18,
'gender':'female'
}
student2 = {
'id':'190720159',
'name':'Mark',
'age':20,
'gender':'male'
}
results = collection.insert_many([student1,student2])
print(results)
print(results.inserted_ids)

  

②查询

  ※find()得到一个生成器对象,需要循环遍历

## 查询多条数据
results = collection.find({'age':20})
for r in results:
print(r)

  

   ※find_one()得到单个结果,字典类型

## 查询 一条数据
result = collection.find_one({'name':'Amy'})
print(type(result)) ## <class 'dict'> 返回结果时字典类型
print(result)

  

  ※比较查询

## 查询年龄大于等于20的数据
result1 = collection.find({'age':{'$gte':20}})
for r in result1:
print(r)

  ※正则匹配

## 正则匹配查询
##查询以 M 开头的学生
result2 = collection.find({'name':{'$regex':'^M.*'}})
for r in result2:
print(r)

③计数

## 计数
count = collection.find().count()
print(count)

  

④排序

## 排序
s_sort = collection.find().sort('age',pymongo.ASCENDING)
print([s for s in s_sort]) ## 升序
j_sort = collection.find().sort('age',pymongo.DESCENDING)
print([j for j in j_sort]) ## 降序

  

⑤偏移

数据量过大,不建议使用偏移,可以对id_进行条件查询

## 偏移 跳过前两个查询结果,得到第三个以后的数据
skip = collection.find().sort('age',pymongo.ASCENDING).skip(2)
print([s['name'] for s in skip])
## limit(1) 限制只返回一个结果
limit= collection.find().sort('age',pymongo.ASCENDING).skip(2).limit(1)
print([l['name'] for l in limit])

  

【BOOK】数据存储--MongoDB的更多相关文章

  1. 大数据存储:MongoDB实战指南——常见问题解答

    锁粒度与并发性能怎么样? 数据库的读写并发性能与锁的粒度息息相关,不管是读操作还是写操作开始运行时,都会请求相应的锁资源,如果请求不到,操作就会被阻塞.读操作请求的是读锁,能够与其它读操作共享,但是当 ...

  2. 数据存储 mongodb

    数据存储 mongodb from pymongo import MongoClient import os base_dir = os.getcwd() class MongoPipeline(ob ...

  3. 【18】如何把数据存储到MongoDB数据库

    如何把数据存储到MongoDB数据库 时间:2018.10.31                   edit by :北鼻 一.mongoDB环境安装 需要使用mongoDB数据库的话需要安装环境, ...

  4. 04 爬虫数据存储之Mongodb

    MongoDB 认识MongoDB MongoDB是一个基于分布式文件存储的数据库.由C++语言编写.旨在为WEB应用提供可扩展的高性能数据存储解决方案.MongoDB是一个介于关系数据库和非关系数据 ...

  5. Python爬虫框架Scrapy实例(三)数据存储到MongoDB

    Python爬虫框架Scrapy实例(三)数据存储到MongoDB任务目标:爬取豆瓣电影top250,将数据存储到MongoDB中. items.py文件复制代码# -*- coding: utf-8 ...

  6. Spring Boot 揭秘与实战(二) 数据存储篇 - MongoDB

    文章目录 1. 环境依赖 2. 数据源 2.1. 方案一 使用 Spring Boot 默认配置 2.2. 方案二 手动创建 3. 使用mongoTemplate操作4. 总结 3.1. 实体对象 3 ...

  7. scrapy抓取拉勾网职位信息(七)——数据存储(MongoDB,Mysql,本地CSV)

    上一篇完成了随机UA和随机代理的设置,让爬虫能更稳定的运行,本篇将爬取好的数据进行存储,包括本地文件,关系型数据库(以Mysql为例),非关系型数据库(以MongoDB为例). 实际上我们在编写爬虫r ...

  8. 第十二节:Web爬虫之MongoDB数据库安装与数据存储

    MongoDB是一个基于分布式文件存储的数据库.由C++语言编写.旨在为WEB应用提供可扩展的高性能数据存储解决方案. MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功 ...

  9. python3下scrapy爬虫(第十一卷:scrapy数据存储进mongodb)

    说起python爬虫数据存储就不得不说到mongodb,现在我们来试一下scrapy操作mongodb 首先开启mongodb mongod --dbpath=D:\mongodb\db 开启服务后就 ...

  10. Kooboo CMS技术文档之三:切换数据存储方式

    切换数据存储方式包括以下几种: 将文本内容存储在SqlServer.MySQL.MongoDB等数据库中 将站点配置信息存储在数据库中 将后台用户信息存储在数据库中 将会员信息存储在数据库中 将图片. ...

随机推荐

  1. avue入门

    <html> <head> <script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.min. ...

  2. 精美的web前端源码的特效

    1.JS自定义烟花特效 这是一款基于JS和Canvas的自定义烟花特效,初始化界面的时候特效是不带声效的绽放,当你点击顶部中间的播放,即可以看到美丽的烟火也可以听到烟花绽放的声音,让你脑海浮现过年团圆 ...

  3. 关于AD获取成员隶属于哪些组InvokeGet("memberOf")的问题

    关于AD获取成员隶属于组成员问题 获取结果默认返回object类型,可能是string类型,也可能是object[]类型,所以只有一个结果的时候是string类型,直接返回object[]会报错 pr ...

  4. MongoDB Compass的安装及使用图文说明(非常详细)

    1.下载 MongoDB Compass 预编译二进制包下载地址:https://www.mongodb.com/try/download/compass 2.安装 MongoDB Compass 的 ...

  5. 基于 Hugging Face Datasets 和 Transformers 的图像相似性搜索

    基于 HuggingFace Datasets 和 Transformers 的图像相似性搜索 通过本文,你将学习使用 Transformers 构建图像相似性搜索系统.找出查询图像和潜在候选图像之间 ...

  6. Linux的简介、历史

    开始linux Java开发之路: javaSE.Mysql. 前端.(HTML\CSS\JS).javaWeb.SSM框架.SpringBoot.Vue.SpringCloud Linux.中间件 ...

  7. shrio

    Shrio 页面报错 <link rel="shortcut icon" href="#"/> 简单的安全框架 官网:https://shiro.a ...

  8. 黑马Mybatis快速入门

    创建user表,添加数据,Mysql: 1 create database mybatis; 2 use mybatis; 3 drop table if exists tb_user; 4 crea ...

  9. Windows 10系统设置多用户同时远程登录教程 and rdpwrap下载 and Win10多用户同时远程桌面的另类解决方案---支持1809和1909和2004版本V2.0

    转载简书: Windows 10系统设置多用户同时远程登录教程 - 简书 (jianshu.com) 转载github: 发布 ·stascorp/rdpwrap ·GitHub 转载csdn: Wi ...

  10. php pdo如何查询记录条数

    转载php中文网:https://www.php.cn/php-ask-457710.html php pdo查询记录条数的方法:1.使用fetchAll函数查询,其语法如"$rows=$q ...