zoukankan      html  css  js  c++  java
  • MongoDB 基础

    一.MongoDB

    1.首先下载mongodb

    开始:

    启动

    Mongodb

    mongod --dbpath "数据库目录"

    默认端口 27017  开启主机成功

    第二步,在开启一个终端 执行 mongo

    show dbs 查看所有存在磁盘上的数据库
    show tables 查看当前数据库存在磁盘上的数据表
    
    use 数据库 创建数据库或切换数据库
    
    ######使用了不能存在的对象即创建该对象######
    
    数据库.表名 创建表

    概念

    相对于mysql来说,不存在关联关系,通过字典套列表,列表套字典的形式用来存储,相对的,更对更加消耗资源

    MongoDB:
        [
            {
                "id":1,
                "name":"jwb",
                "age":73,
                "hobby":["ywb","lwb"],
                "duixiang":{
                    "id":2,
                    "name":"ywb",
                    "age":84
                }
            }}
    mysql        mongodb    
    数据库         数据库
    表            collections
    列            Field
    row            documents

    数据增删改查

    增加 insert #db.user.insert({"id":1,"name":"jwb","age":73})
    
    官方推荐写法 db.user.insertMany([{}]) db.user.insertOne({})
    
    
    查看 find
    
    db.user.find()
    
    db.user.findOne({})
    
    db.user.find({"id":2,"age":85}) 并列条件
    
    或条件:
    
    $or : db.user.find({$or:[{age:73},{name:"ywb"}]})
    
    同一个字段的 或条件
    
    $in : db.user.find({age:{$in:[73,84,86]}})
    
    子集检索 db.user.find({what:{$in:[2,1]}})
    
    $all : 满足所有条件 #相当于and
    
    db.user.find({what:{$all:[2,1,3]}})
    数学比较符:
    $gt : 大于 db.user.find({age:{$gt: 73}})
    $gte: 大于等于
    $lt : 小于
    $lte: 小于等于
    $eq : 等于 
    :也是等于

    更新

    更新:update 修改器 $set
    #db.user.update({"age":84}, {$set:{"username":"jinjiaodawangba"}})
    
    官方推荐写法:
    db.user.updateOne({"name":"jwb"},{$set:{"age":99}})
    db.user.updateMany({"name":"jwb"},{$set:{"age":99}})

    删除

    删除:remove / delete
    #db.user.remove({"age":85})
    
    官方推荐写法:
    db.user.deleteOne({"name":"jwb"})
    db.user.deleteMany({"name":"jwb"})

    修改器

    $修改器:
    $set : 暴力修改 
    $unset : 暴力删除字段 db.user.updateOne({"name":"ywb"},{$unset:{"hobby":1}})
    $inc : 引用增加 在原有值的基础上增加 db.user.updateMany({},{$inc:{age:1}})#随意增加

    array修改器:

    array修改器:
    $push 增加元素 :db.user.updateOne({"name":"ywb"},{$push:{"hobby":"jwb"}})
    $pull 删除元素 :db.user.updateOne({"name":"ywb"},{$pull:{"hobby":"jwb"}})
    $pushAll 迭代增加 :db.user.updateOne({"name":"ywb"},{$pushAll: {"hobby":[1,2,3]}})
    $pop 删除最后一条数据/第一条 :
    最后一条 db.user.updateOne({"name":"ywb"},{$pop:{"hobby":1}}) #只可以删除列表的前一个和后一个
    第一条 db.user.updateOne({"name":"ywb"},{$pop:{"hobby":-1}})
    
    $ 字符:
    ["hj","tt",1,2] # {"hobby":"hj"} hj 是hobby列表中的第0个元素 就把 0 这个数据放在了 $ 中
    db.user.updateMany({hobby:"hj"},{$set:{"hobby.$":"喝酒"}})
    
    ###### $ 存储符合条件的元素下标索引

    Object操作

    db.user.updateOne({"kecheng.name":"python"},{$set:{"kecheng.price":19800}})
    db.user.updateOne({"kecheng.name":"python"},{$inc:{"kecheng.price":500}})
    
    Array中的Object
    db.user.updateOne({"hobby.age":84},{$set:{"hobby.$.age":73}})
    
    Object中的Array
    db.user.updateOne({"kecheng.class":15},{$set:{"kecheng.class.$":20}})

     

    数据类型

    数据类型:
    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类型,时间戳可以秒杀一切时间类型)

    MongoDB中的跳过选取排序:

    skip(5) 跳过五条数据

    limit(5) 只显示五条数据

    sort({age:1}) 正序    sort({age:-1}) 倒序

    栗子

    db.ta.find({})
    // db.ta.insertOne({"name":"alex"})
    
    // db.ta.find({"list":2},{"name":"alex"})
    // db.ta.find({$or: [{"list":10000},{"name":"alex"},{"age":111}]})#找出一个就显示全部
    // db.ta.find({"list":{$in: [1,2,3,4,5,6,8,9]}})#在里面就显示全部符合查找的结果
    
    // db.ta.find({"list":{$all: [1,2,1000]}})#进行all查询相当于and,必须全部满足
    
    // db.ta.remove({"name":"alex"})
    
    // db.ta.updateOne({"name":"alex"},{$unset:{"name":1}})#删除字段通过update $unset: {删除的字段:1}
    
    // db.ta.updateOne({"id":3},{$set:{"name":"alex"}})#在对象里增加字段需要通过update找到
    //字段并通过$set (新的字段:新的数据)
    
    // db.ta.updateOne({"id":3},{$set:{"age":18}})
    
    // db.ta.updateOne({"id":3},{$inc: {"age":1}})#$inc: {增加数字}
    
    // db.ta.updateOne({"id":3},{$push: {"list":9}})  #push增加列表
    
    // db.ta.updateOne({"id":3},{$pull:{"list":9}})  #pull移除列表元素
    
    // db.ta.updateMany({"id":3},{$pull:{"list":[1,2,3]}}) #PULL移除不了列表
    // db.ta.updateOne({id:3},{$push:{"list":[1,2,3]}})  #当push 列表则会创建一个新的列表
    
    
    // db.ta.updateOne({"id":3},{$pushAll: {"list":[9,10]}})#通过pushall:[] 迭代添加
    
    // db.ta.updateOne({"list":3},{$set:{"list.$":33}})#代表符合查找条件的下标索引
    
    // db.ta.updateOne({id:3},{$set:{"char":{"text":"linux"}}}) #创建一个字典
    // db.ta.updateOne({id:3},{$set:{"char":{"price":1800}}})
    
    // db.ta.updateOne({"id":3},{$set:{"char.text.text":"python"}})#字典的操作点出来要找到建
    
    
    // db.ta.updateOne({"list.age":19},{$set:{"list.$.age":888}})#在进行object下的accept中$代表索引找到age这个字典
    
    // db.ta.updateOne({"char.lis":"hj"},{$set:{"char.lis.$":"琴酒"}})#进行accept查obj需要找到改变的$
    
    
    // db.ta.insert({"id":2,"age":99})
    
    // db.ta.find({}).limit(5).sort({ "id":-1 }).skip(2) #limit()每次显示几个sort(1,-1)正序,倒叙skip(2)从第几个开始
  • 相关阅读:
    List
    美团Leaf分布式ID生成策略
    单点登陆
    ElasticSearch
    Eureka
    Nginx
    UML
    Computer English
    加密
    Excel中把一列数据转换成逗号隔开的一行
  • 原文地址:https://www.cnblogs.com/zhangqing979797/p/10278954.html
Copyright © 2011-2022 走看看