nosql ------>mongodb

 nosql 数据库  是非关系型数据库  (not only sql)(BSON == JSON == dict)

常用的 有 mongodb、redis这2种

什么是nosql数据库:

      数据库:进行高效的、有规则的进行数据持久化存储的软件

      NoSQL数据库:Not only sql,指代非关系型数据库

      优点:高可扩展性、分布式计算、低成本、灵活架构、半结构化数据、简化关联关系 

      缺点:没有标准化、有限查询、不直观

常见[NoSQL]数据库 BSON==json

          列存储:Hbase、Cassandra、Hypertable

          文档存储:MongoDB、CouchDB

          k-v存储:TokyoCabinet、BerkeleyDB、Memcache、redis

          对象(图)存储:Neo4J、Versant

          Xml数据库:BerkeleyDB、BaseX

mongodb:(开源的 可以从官方网站下载 偶数是稳定版 奇数是开发板)

1、安装

  在window下使用压缩包安装 :

      1、解压文件到某个盘符(路径不能包含特殊字符和中文)

      2、配置bin到环境变量中的path

      3、在主目录新建data文件夹、在 data文件夹 下新建 db文件夹 和log文件夹  在 log文件夹中新建log.log文件

      4、以管理员身份打开cmd

                            输入指令 mongodb --dbpath db文件路径  配置db

                           输入指令mongodb --dbpath db文件夹路径  --logpath log.log文件路径  --install     配置服务 (注册成服务)         

       5、开启mongodb服务使用mongodb数据库

   在linux下安装:

         1、sudo apt install mongodb 第一种方法

          2、第二种方法通过压缩包安装  tar  -zxvf 压缩文件名

              未完 待补充需要配置path


mongodb概述:

      是基于分布式文件存储 的nosql 数据库  由c++编写

优点: 模式自由   面向集合   完整索引支持    复制和高可用性


mongodb 术语解释

sql   --------> nosql

DBMS  ---- >DBMS :数据库管理系统

database ----> database 数据库

table ----------> collection 数据库  表------>集合

row ------------>  document 数据 记录 ------> 文档

column --------->  field   数据 字段-------->  域

index -------> index  索引

table -join ------------> None  表连接

primary key ----------> primary key  主键


mongodb 基本操作 (mongodb将数据存储为一个文档 数据由键值对的形式组成  组成三元素 数据库--->集合----->文档(域))

   数据库结构的一些操作:

首先打开cmd 输入mongo 打开mongodb服务

mongodb的简单使用

show dbs

use dbName

db\db.getName()

db.help()

db.createCollection("name")

db.cname.insert({});    db.cname([{},{},{}.........])插入多条数据

db.dropDatabase();

db.cname.drop()

nosql ------>mongodb_第1张图片

show dbs  查看当前数据库

db 查看当前在那个数据库

use db_py1712 切换到db_py1712数据库

show collections显示当前数据库下所有的集合

db.createCollection('stu')  创建一个数据集合



show dbs

use users

show collections

db.user.find({age:{$lt:30}})

db.user.find().pretty()


nosql ------>mongodb_第2张图片

db.user.find({age:30}).pretty() ====== db.user.find({age:{$eq:18}}).pretty()


nosql ------>mongodb_第3张图片

db.user.insert({name:'xiaoming',age:20})   插入一条数据

db.user.insert({name:'xiaoming',age:30})

db.user.find({age:{$eq:30},name:'xiaoming'})

db.user.find({$and:[{age:{$eq:30}},{name:{$eq:'xiaoming'}}]})

db.user.find({$or:[{age:18},{name: 'ls'}]})

db.user.find({age:{$in:[18,20]}})

db.user.find({age:{$nin:[18,20]}})

db.user.find().limit(3)   分页显示,一页显示3行

db.user.find().limit().count() 统计所有记录数

db.user.find({age:30}).limit().count()  统计年龄等于30的记录数


nosql ------>mongodb_第4张图片
sql和nosql对比

更新db.stu.update({title: 'python01'},{$set:{title: 'mongo'}})

nosql ------>mongodb_第5张图片
原表格


nosql ------>mongodb_第6张图片

db.stu.update({age: {$gt:30}},{$set:{age: 30}})

nosql ------>mongodb_第7张图片

删除文档 db.stu.remove({name: '老王'})

nosql ------>mongodb_第8张图片


nosql ------>mongodb_第9张图片

MongoDB AND 条件

MongoDB 的 find() 方法可以传入多个键(key),每个键(key)以逗号隔开,即常规 SQL 的 AND 条件。

语法格式如下:

>db.col.find({key1:value1, key2:value2}).pretty()

nosql ------>mongodb_第10张图片

MongoDB OR 条件

nosql ------>mongodb_第11张图片
db.stu.find({$or:[{'age': 18},{name:'lisa'}]}).pretty()

AND 和 OR 联合使用

db.stu.find({sex: '男'},{$or:[{age:{$gte: 20}},{name: 'lisa'}]}).pretty()

MongoDB $type 操作符

$type操作符是基于BSON类型来检索集合中匹配的数据类型,并返回结果

nosql ------>mongodb_第12张图片

MongoDB Limit() 方法

如果你需要在MongoDB中读取指定数量的数据记录,可以使用MongoDB的Limit方法,limit()方法接受一个数字参数,该参数指定从MongoDB中读取的记录条数。

nosql ------>mongodb_第13张图片

MongoDB Skip() 方法

我们除了可以使用limit()方法来读取指定数量的数据外,还可以使用skip()方法来跳过指定数量的数据,skip方法同样接受一个数字参数作为跳过的记录条数。

nosql ------>mongodb_第14张图片

MongoDB sort()方法

在MongoDB中使用使用sort()方法对数据进行排序,sort()方法可以通过参数指定排序的字段,并使用 1 和 -1 来指定排序的方式,其中 1 为升序排列,而-1是用于降序排列。

你可能感兴趣的:(nosql ------>mongodb)