zoukankan      html  css  js  c++  java
  • MongoDB

    服务端

    MongDB:
    1.默认监听端口是 27017 | Mysql:3306 | Redis:6379 orcal:1521 sql server:1433/5419/5413/5416
    2.MongoDB 启动 "mongod"
    指定 MongoDB 数据存储目录 --dbpath="d:/MongoData/db"
    mongod --dbpath="d:/MongoData/db"

    安装MongoDB数据库服务:

    进入D:mongodbin目录

    输入命令mongod  --dbpath D:MongoDatadata --logpath D:MongoDatalogmongodb.log --install

    启动MongoDB服务:

    net start MongoDB

     

     介绍MongoDB:

    NoSQL 文件型数据库 非关系型
    自由
    MySQL:
    id name age sp wq
    1 孙悟空 99999999 null 定海神针
    2 沙悟净 9999999 唐僧同款项链 null

    3.MongoDB 指令
    1.show databases 查看本地磁盘中的数据库
    2.use databasename 切换当前使用的数据库
    3.db 查看当前使用的数据库
    4.show tables 查看当前数据库磁盘中的表
    4.MongoDB 数据 新建
    use 不存在的数据库名 即 在内存中创建该数据库
    db.不存在的表名 即 在数据库中创建该表(内存中)
    使用了不存在的对象 即 创建该对象
    5.增删改查
    1.增
    db.tablename.insert({})
    db.user.insert({name:"沙悟净",age:66.666,hobby:[1,2,3,4,5]})
    db.user.insert([{},{}])
    官方推荐写法 in 3.2:
    db.user.insertOne({}) 增加一条数据
    db.user.insertMany([{},{}]) 批量增加数据
    2.查询
    db.tablename.find({查询条件}) 查询所有符合条件的数据
    db.user.find({name:"沙悟净"}) 条件查询
    db.user.find({name:"沙悟净",age:77}) 并列条件查询
    db.user.findOne({}) 查询符合条件的第一条数据 返回JSON数据
    $数据比较符
    $lt 小于
    $lte 小于等于
    $gt 大于
    $gte 大于等于
    $eq 等于
    $ne 不等于
    3.改
    db.tablename.update() 修改符合条件的第一条数据
    # 所有MongoDB的修改全部基于 修改器
    # $修改器 关键字
    # $关键字:
    db.user.updateOne({name:"太白金星","stdent.name":"MPy"},{$set:{"stdent.$.name":"Anyway"}})
    db.user.updateOne({name:"太白金星",hobby:"喝酒"},{$set:{"hobby.$":"飙车"}})
    $是用来存储符合当前Array条件元素的下标索引
    当前Array - ["抽烟","喝酒","剃头"]
    条件元素 - {hobby:"喝酒"}
    当前Array - 第2个元素符合条件 它的下表索引是 1
    当前$ 的值就是 1
    如果使用".索引"的方式来操作Array "字段.索引位置"
    官方推荐
    db.user.updateOne({},{}) 修改符合条件的第一条数据
    db.user.updateMany({},{}) 修改符合条件的所有数据
    $set
    db.user.update({age:66.666},{$set:{age:44}})
    强制的将某字段值修改
    db.user.update({name:"孙大圣"},{$set:{ag18e:18}})
    如果该字段不存在即创建该字段并赋值
    $unset
    db.user.update({name:"孙大圣"},{$unset:{ag18e:1}})
    删除字段
    $inc
    db.user.update({name:"孙大圣"},{$inc:{age:1}})
    引用增加 先引用原有数据 在原有数据基础上增加
    db.user.update({name:"孙大圣"},{$inc:{age:-1}})
    减少
    针对 Array List操作
    $push == append
    db.user.update({name:"孙大圣"},{$push:{hobby:"8"}})
    在Array类型中增加数据在最末端增加
    $pushAll == extends
    db.user.update({name:"孙大圣"},{$pushAll:{hobby:[9,10,11,12]}})
    在Array类型中增加数据在最末端增加多条数据
    $pull == remove()
    db.user.update({name:"孙大圣"},{$pull:{hobby:"8"}})
    删除所有符合条件的数据
    $pullAll
    db.user.update({name:"孙大圣"},{$pushAll:{hobby:[9,10,11,12]}})
    遍历删除所有符合条件的数据

    $pop ~= pop() 删除Array中第一条或最后一条
    db.user.update({name:"孙大圣"},{$pop:{hobby:-1}})
    删除第一个数据

    db.user.update({name:"孙大圣"},{$pop:{hobby:1}})
    删除最后一个数据

    4.删除
    db.tablename.remove({查询条件}) 删除符合条件的所有数据
    db.user.remove({}) 如果条件为空则删除所有数据 危险!

    官方推荐的写法:
    db.user.deleteOne({}) # 删除符合条件的第一条数据
    db.user.deleteMany({}) # 删除所有符合条件的数据 危险! 如果条件为空则删除所有数据


    6.MongoDB 的数据类型
    ObjectID :Documents 自生成的 _id
    String: 字符串,必须是utf-8
    Boolean:布尔值,true 或者false (这里有坑哦~在我们大Python中 True False 首字母大写)
    Integer:整数 (Int32 Int64 你们就知道有个Int就行了,一般我们用Int32)
    Double:浮点数 (没有float类型,所有小数都是Double)
    Arrays:数组或者列表,多个值存储到一个键 (list哦,大Python中的List哦)
    Object:如果你学过Python的话,那么这个概念特别好理解,就是Python中的字典,这个数据类型就是字典
    Null:空数据类型 , 一个特殊的概念,None Null
    Timestamp:时间戳
    Date:存储当前日期或时间unix时间格式 (我们一般不用这个Date类型,时间戳可以秒杀一切时间类型)

    7.选取 跳过 排序
    排序
    db.user.find({}).sort({age:-1}) 倒序
    db.user.find({}).sort({age:1}) 正序
    跳过
    db.user.find({}).skip(跳过条目) 跳过
    选取
    db.user.find({}).limit(300) 选取300条数据
    如果数据条目小于300 则全部查询
    大于300 则只查询300条

    db.user.find({}).sort({age:-1}).skip(1).limit(2)
    当3个关键全部出现在一条语句中时,先排序 再跳过 再选取

    分页(每页2条数据):
    count = 2
    page = 1
    skip(page-1*count)
    db.user.find({}).sort({age:-1}).skip(page-1*count).limit(count)

    客户端:

    非关系型数据库 - NoSQL 文件型数据库
    3306 MySQL
    6379 Redis
    1433 MSSQL - 微软的sqlserver

    DB2 - IBM
    ORCL - 甲骨文
    MySQL - 甲骨文
    MSSQL - 微软
    Sybase - MSSQL鼻祖

    MongoDB 启动
    mongod 启动MongoDB服务 默认端口 27017
    -- 默认数据库文件的存放地址 C:/data/db or /data/db
    -- dbpath="D:/data/db"
    mongo 启动客户端
    -- 默认连接 localhost:27017

    MongoDB 指令
    show databases 查看当前数据库服务器磁盘中的数据库
    use dbname 使用dbname数据库 / 在内存中创建dbname数据库 只有在dbname不存在时才会创建
    db 查看当前使用的数据库 / 当前使用的数据库变量
    show tables 查看当前数据库磁盘中的数据表
    db.tablename 创建或使用tablename数据表

    MongoDB 增删改查
    1.增:
    db.tablename.insert({name:123}) 官方认可但不推荐
    res = db.tablename.insertOne({name:123}) # 增加一条数据 inserted_id
    res = db.tablename.insertMany([{name:123},{name:456}]) # 增加多条数据 inserted_ids

    2.删除数据:
    db.tablename.remove({查询条件}) #官方认可但不推荐
    db.tablename.deleteOne({查询条件}) # 删除符合条件的第一条数据 _id
    db.tablename.deleteMany({查询条件})# 删除所有符合条件的数据

    3.查询数据:
    db.tablename.find({查询条件}) # 查询所有符合条件的数据
    db.tablename.findOne({查询条件}) # 查询符合条件的第一条数据

    并列条件查询 and
    db.tablename.find({查询条件1,查询条件2})

    $比较符:
    $lt <
    $lte <=
    $gt >
    $gte >=
    $eq ==
    $ne !=

    4.修改数据
    db.tablename.update({查询条件},{$修改器:{修改值}}) # 官方认可但不推荐
    db.tablename.updateOne({查询条件},{$修改器:{修改值}}) # 修改符合条件的第一条数据
    db.tablename.updateMany({查询条件},{$修改器:{修改值}}) # 修改所有符合条件的数据

    $修改器 字段:
    $set 强制修改 创建字段
    $unset 删除字段 {字段:1}
    $inc 引用增加 {$inc:{age:1/-1}} 只能增加不能减少

    $修改器 Array List
    $push == append #追加数据 {$push:{hobby:6}}
    $pull == remove #删除元素 {$pull:{hobby:6}}
    $pop ~= pop #删除第一个(1)或者最后一个元素(-1) {$pop:{hobby:1/-1}}
    $pushAll == extends #追加批量元素 {$pushAll:{hobby:[4,5,6,7]}}
    $pullAll # 批量删除元素 {$pullAll:{hobby:[4,5,6,7]}}

    5.sort skip limit
    逻辑顺序
    先排序 - 再跳过 - 最后选取


    # 程序 > OS-操作系统 > 内存
    内存 - 空间(大箱子)

  • 相关阅读:
    干货:分布式系统详解
    如果有人问你数据库的原理,叫他看这篇文章
    MySQL的B树索引与索引优化
    优化网站性能必备的6种架构方案,你知道吗?
    【干货】手把手教你搭建一套可自动化构建的微服务框架
    你真的理解微服务架构吗
    Android Activity 半透明效果(Translucent)
    Android DatepickerDialog(日期选择器)的使用
    Android搜索自动提示功能 AutocompleteTextView
    Android动态加载ListView中的Item
  • 原文地址:https://www.cnblogs.com/zhang-da/p/13246187.html
Copyright © 2011-2022 走看看