MongoDB
C-haidragon
我的视频学习地址:https://edu.csdn.net/lecturer/5805?spm=1003.2001.3001.4144
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
简介
简介 MongoDB 是一个基于分布式 文件存储的NoSQL数据库由C++语言编写,运行稳定,性能高旨在为 WEB 应用提供可扩展的高性能数据存储解决方案查看官方网站 MongoDB特点 模式自由 :可以把不同结构的文档存储在同一个数据库里面向集合的存储:适合存储 JSON风格文件的形式完整的索引支持:对任何属性可索引复制和高可用性:支持服务器之间的数据复制,支持主-从模式及服务器之原创 2017-10-29 09:35:27 · 349 阅读 · 0 评论 -
聚合 aggregate
聚合 aggregate 聚合(aggregate)主要用于计算数据,类似sql中的sum()、avg()语法 db.集合名称.aggregate([{管道:{表达式}}]) 管道 管道在Unix和Linux中一般用于将当前命令的输出结果作为下一个命令的输入 ps ajx | grep mongo 在mongodb中,管道具有同样的作用,文档处理完毕后,通过管道进行下一原创 2017-10-30 11:16:20 · 607 阅读 · 0 评论 -
$group
$group 将集合中的文档分组,可用于统计结果_id表示分组的依据,使用某个字段的格式为'$字段'例1:统计男生、女生的总人数db.stu.aggregate([ {$group: { _id:'$gender', counter:{$sum:1} } } ]) Group by null原创 2017-10-30 11:17:09 · 851 阅读 · 0 评论 -
$match
$match 用于过滤数据,只输出符合条件的文档使用MongoDB的标准查询操作例1:查询年龄大于20的学生db.stu.aggregate([ {$match:{age:{$gt:20}}} ]) 例2:查询年龄大于20的男生、女生人数 db.stu.aggregate([ {$match:{age:{$gt:20}}}, {$group:{_id:'$ge原创 2017-10-31 11:39:47 · 2735 阅读 · 0 评论 -
$project
$project 修改输入文档的结构,如重命名、增加、删除字段、创建计算结果例1:查询学生的姓名、年龄 db.stu.aggregate([ {$project:{_id:0,name:1,age:1}} ]) 例2:查询男生、女生人数,输出人数 db.stu.aggregate([ {$group:{_id:'$gender',counter:{$sum:1}}原创 2017-10-31 11:40:45 · 662 阅读 · 0 评论 -
$sort
$sort 将输入文档排序后输出例1:查询学生信息,按年龄升序 b.stu.aggregate([{$sort:{age:1}}]) 例2:查询男生、女生人数,按人数降序 db.stu.aggregate([ {$group:{_id:'$gender',counter:{$sum:1}}}, {$sort:{counter:-1}} ])原创 2017-10-31 11:41:12 · 806 阅读 · 0 评论 -
$limit、$skip、$unwind
$limit 限制聚合管道返回的文档数例1:查询2条学生信息 db.stu.aggregate([{$limit:2}]) $skip 跳过指定数量的文档,并返回余下的文档例2:查询从第3条开始的学生信息 db.stu.aggregate([{$skip:2}]) 例3:统计男生、女生人数,按人数升序,取第二条数据 db.stu.aggregate([ {$g原创 2017-10-31 11:41:58 · 1303 阅读 · 0 评论 -
安全
超级管理员 为了更安全的访问mongodb,需要访问者提供用户名和密码,于是需要在mongodb中创建用户采用了角色-用户-数据库的安全管理方式常用系统角色如下: root:只在admin数据库中可用,超级账号,超级权限Read:允许用户读取指定数据库readWrite:允许用户读写指定数据库 创建超级管理用户 use admin db.createUser({ user:原创 2017-10-31 11:44:13 · 565 阅读 · 2 评论 -
复制(副本集)
复制(副本集) 什么是复制 复制提供了数据的冗余备份,并在多个服务器上存储数据副本,提高了数据的可用性,并可以保证数据的安全性复制还允许从硬件故障和服务中断中恢复数据 为什么要复制 数据备份数据灾难恢复读写分离高(24* 7)数据可用性无宕机维护副本集对应用程序是透明 复制的工作原理 复制至少需要两个节点A、B...A是主节点,负责处理客户端请求其余的都是从节点,负责复制主原创 2017-10-31 11:45:28 · 448 阅读 · 0 评论 -
备份与恢复
备份 语法 mongodump -h dbhost -d dbname -o dbdirectory -h:服务器地址,也可以指定端口号-d:需要备份的数据库名称-o:备份的数据存放位置,此目录中存放着备份出来的数据例1 sudo mkdir test1bak sudo mongodump -h 192.168.196.128:27017 -d test1 -o ~/Deskto原创 2017-10-31 11:53:16 · 276 阅读 · 0 评论 -
消除重复
消除重复 方法distinct()对数据进行去重语法 db.集合名称.distinct('去重字段',{条件}) 例1:查找年龄大于18的性别(去重) db.stu.distinct('gender',{age:{$gt:18}})原创 2017-10-30 11:15:40 · 377 阅读 · 0 评论 -
统计个数
统计个数 方法count()用于统计结果集中文档条数语法 db.集合名称.find({条件}).count() 也可以与为 db.集合名称.count({条件}) 例1:统计男生人数 db.stu.find({gender:1}).count() 例2:统计年龄大于20的男生人数 db.stu.count({age:{$gt:20},gender:1})原创 2017-10-30 11:15:17 · 654 阅读 · 0 评论 -
排序
排序 方法sort(),用于对结果集进行排序语法 db.集合名称.find().sort({字段:1,...}) 参数1为升序排列参数-1为降序排列例1:根据性别降序,再根据年龄升序 db.stu.find().sort({gender:-1,age:1})原创 2017-10-30 11:14:53 · 318 阅读 · 0 评论 -
基本操作
基本操作 MongoDB将数据存储为一个文档,数据结构由键值(key=>value)对组成MongoDB文档类似于JSON对象,字段值可以包含其他文档、数组、文档数组安装管理mongodb环境完成数据库、集合的管理数据的增加、修改、删除、查询 名词 SQL术语/概念 MongoDB术语/概念 解释/说明 database database 数据库原创 2017-10-29 09:37:21 · 493 阅读 · 0 评论 -
安装
安装下载mongodb的版本,两点注意根据业界规则,偶数为稳定版,如1.6.X,奇数为开发版,如1.7.X32bit的mongodb最大只能存放2G的数据,64bit就没有限制到官网,选择合适的版本下载解压tar -zxvf mongodb-linux-x86_64-ubuntu1604-3.4.0.tgz 移动到/usr/local/目录下sudo mv -r mongodb-linux-x86...原创 2017-10-29 09:38:54 · 321 阅读 · 0 评论 -
数据库操作
数据库切换 查看当前数据库名称 db 查看所有数据库名称列出所有在物理上存在的数据库 show dbs 切换数据库如果数据库不存在,则指向数据库,但不创建,直到插入数据或创建集合时数据库才被创建 use 数据库名称 默认的数据库为测试,如果你没有创建新的数据库,集合将存放在测试数据库中 数据库删除 删除当前指向的数据库如果数据库不存在,则什么也不做 d原创 2017-10-29 09:41:43 · 349 阅读 · 0 评论 -
集合创建
集合创建 语法 db.createCollection(name, options) name是要创建的集合的名称options是一个文档,用于指定集合的配置选项参数是可选的,所以只需要到指定的集合名称。以下是可以使用的选项列表:例1:不限制集合大小 db.createCollection("stu") 例2:限制集合大小,后面学会插入语句后可以查看效果参数cappe原创 2017-10-29 09:45:39 · 682 阅读 · 0 评论 -
数据类型
数据类型 下表为MongoDB中常用的几种数据类型:Object ID:文档IDString:字符串,最常用,必须是有效的UTF-8Boolean:存储一个布尔值,true或falseInteger:整数可以是32位或64位,这取决于服务器Double:存储浮点值Arrays:数组或列表,多个值存储到一个键Object:用于嵌入式的文档,即一个值为一个文档Null:存储Null值Timest原创 2017-10-30 11:08:16 · 484 阅读 · 0 评论 -
数据操作
插入 语法 db.集合名称.insert(document) 插入文档时,如果不指定_id参数,MongoDB会为文档分配一个唯一的ObjectId例1 db.stu.insert({name:'gj',gender:1}) 例2 s1={_id:'20160101',name:'hr'} s1.gender=0 db.stu.insert(s1) 简单查询原创 2017-10-30 11:09:41 · 309 阅读 · 0 评论 -
数据查询
数据查询 基本查询 方法find():查询 db.集合名称.find({条件文档}) 方法findOne():查询,只返回第一个 db.集合名称.findOne({条件文档}) 方法pretty():将结果格式化 db.集合名称.find({条件文档}).pretty() 比较运算符 等于,默认是等于判断,没有运算符小于$lt小于或等于$lte大于$gt大于原创 2017-10-30 11:11:22 · 590 阅读 · 0 评论 -
Limit与skip
Limit 方法limit():用于读取指定数量的文档语法: db.集合名称.find().limit(NUMBER) 参数NUMBER表示要获取文档的条数如果没有指定参数则显示集合中的所有文档例1:查询2条学生信息 db.stu.find().limit(2) skip 方法skip():用于跳过指定数量的文档语法: db.集合名称.find().skip(NUMB原创 2017-10-30 11:12:30 · 1733 阅读 · 0 评论 -
投影
投影 在查询到的返回结果中,只选择必要的字段,而不是选择一个文档的整个字段如:一个文档有5个字段,需要显示只有3个,投影其中3个字段即可语法:参数为字段与值,值为1表示显示,值为0不显示 db.集合名称.find({},{字段名称:1,...}) 对于需要显示的字段,设置为1即可,不设置即为不显示特殊:对于_id列默认是显示的,如果不显示需要明确设置为0例1 db.stu.fin原创 2017-10-30 11:14:21 · 372 阅读 · 0 评论 -
与python交互
与python交互 点击查看官方文档安装python包 进入虚拟环境 sudo pip install pymongo 或源码安装 python setup.py 引入包pymongo import pymongo 连接,创建客户端 client=pymongo.MongoClient("localhost", 27017) 获得数据库test1 db原创 2017-10-31 11:54:04 · 449 阅读 · 0 评论
分享