zoukankan      html  css  js  c++  java
  • MongoDB的增删改查

        1.启动 - 配置环境变量 MongoDB/3.4/bin
            通过命令 mongod 来启动 MongoDB
            默认端口 27017
            redis:6379
            Mysql:3306
       可以指定数据库存放目录,但在登录时必须指定路径:
              mongod --dbpath="指定数据库存放路径"
        
        2.应用连接MongoDB数据库
            通过 mongo 指令 进行本地数据库连接
        
        3.MongoDB数据:
        mysql - 数据库服务 - 数据库 - 数据表 - 字段 - 数据row
        mongodb - 数据库服务 - 数据库 - 数据表 - 字段 - 数据
        
        show databases 查看当前数据库服务 中包含的数据库 磁盘中的数据库
        use db_name 切换当前使用的数据库 ,如果数据库不存在,会在内存中创建一个新的数据库
        db 显示当前使用的数据库 ,指数据库名
        show tables 查看当前数据库中的数据表 - 预览 - 磁盘中的数据表
        
        4.创建数据表
        db.数据表名 在内存中创建数据库表
        
        5.写入数据才能将内存中的数据库和数据表永久写入到磁盘中
        orm.create({}) == orm.insert({})
        增加数据
            db.users.insert({"name":1,"age":2})
            数据库.数据表.指令({数据})
        查询数据
            db.users.find()
            数据库.数据表.指令()
            
        6.MongoDB数据存储结构
          大字典,json结构
        
        7.MongoDB数据类型:
          ObjectId 数据类型 自增id - 不限定在数据库和数据表中
          String  字符串类型
          Int 不直接默认Int数字,Int32 Int64 如果不直接指定Int 存储的是Double
          Double 双精度浮点型 默认数字存储的数据类型 不存在 float 类型
          Array :列表数据类型数据 list = []
          Object:字典数据类型 dict = {}
        
          Date: ISODate() 时间日期数据类型
          Null: None
          Boolean: 布尔类型,true false
          Timestamp : 通常情况下 Double 存储
        
        8.增删改查的详细操作 - # 使用了不存在的对象 即 创建该对象  use db db.table
        1.增:
            增加一条:db.th.insert({name:1}) //官方不推荐写法 3.2 加入新的insert写入方式
            增加多条:db.th.insert([{name:1},{name:2},{name:3}]) //官方不推荐写法 3.2 加入新的insert写入方式
            官方推荐的写法:
            增加一条:db.th.insertOne({}) // 返回 _id
            增加多条:db.th.insertMany([{},{},{}]) // 返回 _ids
        
        2.查:
            查询所有符合条件的数据 : db.th.find({})
            查询符合条件的第一条数据 :db.th.findOne({})
            带简单条件的查询:
                db.th.findOne({name:2}) 查询name字段 == 2 的数据
                db.stu.find({name:"金角大王8",age:99}) 并列条件 name与age 同时满足的
        
        3.改:简单修改
            更新符合条件的数据,默认为第一条符合条件的数据:db.stu.update({}, {$set:{}})
            官方推荐写法:
            更新第一条符合条件的数据:db.stu.updateOne({age:99}, {$set:{"name":"JW8"}})
            修改器 : $set 强制将某字段的value修改
            更新所有符合条件的数据 : db.stu.updateMany({age:99}, {$set:{"name":"JW8"}})
            
        4.删:
            删除符合条件的所有数据:db.th.remove({}) // 官方不推荐
            官方推荐写法:
            删除第一条符合条件的数据 : db.th.deleteOne({name:1})
            删除符合条件的所有数据:db.th.deleteMany({name:1})
            删除所有数据 :db.th.deleteMany({})
        
        
        9.MongoDB中的数据表,数据行,数据列
                        Mysql       MongoDB
        数据表      table       Collections
        数据行      row         Documents
        数据列      字段        Field
        
        10.高级版 查询
        并列查询 :db.Collection.find({Field:1,Field2:2})
        或查询   :db.Collection.find({$or:[{Field:1},{Field2:3}]})
                       db.stu.find({$or:[{age:99},{ages:666}]}) 在不同字段查询或条件时使用$or
                         db.Collection.find({Field:{$in:[1,2,3,4,5]}})
                         db.stu.find({age:{$in:[9,99,999,9999,9999]}}) 在相同字段情况下查询或条件时使用 $in
                         select * from table where name=1 or age=2 or gender=3
        
        Array 查询 db.stu.find({"hobby":"DSB"})
            数学比较符 $lt $lte $gt $gte $eq $ne
        
        $all : 子集查询
            db.stu.find({l:{$all:[8,6,4,2]}})
            
        Object 查询 :
            db.stu.find({"class.name":"python"})
        
        11.高级版 修改:
        $set : 强制修改字段值
        $inc : 引用增加 db.stu.updateMany({}, {$inc: {"age":10}})
        $unset: 强制删除某个Field db.stu.updateMany({}, {$unset: {"age":1}})
        
        针对Array:
          增加操作:
            db.stu.updateOne({name:"金角大王8"},{$push:{"hobby":"娟儿"}})
            $push == append
            db.stu.updateOne({name:"金角大王8"},{$pushAll:{"hobby":[1,2,3]}})
            $pushAll == extend
          删除操作:
            db.stu.updateOne({name:"金角大王8"},{$pull:{"hobby":"DSB"}})
            $pull == remove
            $pullAll == 删除每一个元素
            db.stu.updateOne({name:"金角大王8"},{$pullAll:{"hobby":[2,3]}})
            
            $pop() 是删除列表中的第一个 (-1) 或者最后一个 (1)
            db.stu.updateOne({name:"金角大王8"},{$pop:{"hobby":1}})删除最后一个
            db.stu.updateOne({name:"金角大王8"},{$pop:{"hobby":-1}})删除第一个元素
          
          更新元素 :
            db.stu.updateOne({name:"金角大王8","hobby":2},{$set:{"hobby.$":"娟儿"}})
            db.stu.updateOne({name:"JW8","class.name":"python"},{$inc:{"class.$.score":10}})
           
        针对Object:
            db.stu.updateOne({name:"金角大王8"},{$unset:{"class.classtype":"bcyy"}})
            db.stu.updateOne({name:"金角大王8"},{$set:{"class.classtype":"bcyy"}})
        
        12. $ 关键字
            用来存储符合条件的元素下标索引
            l = [1,2,3,1,2,2,2] 哪个元素 == 2 它的下标是多少 $就等于这个下标的数字
            l[1] = "娟儿"
            l[$] = "娟儿"
            
        13.limit skip sort
            limit 选取数据量
            skip 跳过数据量
            sort 根据字段进行排序
            db.stu.find().sort({ name:1 }).skip(6).limit(3)
     
        
        
            

        
  • 相关阅读:
    Spring 源码解析之 XML 解析 到 BeanDefinition
    Mybatis 流程解析 之 mapper映射
    Mybatis 流程解析 之 配置加载
    (二) mybatis 源码分析之日志
    CNC 1320
    CNC 1815
    linux中jdk安装,配置环境变量
    ssm配置文件,方便以后使用
    01 标识符,基本数据类型,自动类型转换与强制类型转换,自增与自减,三元运算符,键盘录入
    N46期第二十一周作业
  • 原文地址:https://www.cnblogs.com/wangtaobiu/p/10602705.html
Copyright © 2011-2022 走看看