zoukankan      html  css  js  c++  java
  • 集腋成裘-14-MongoDB系列-01初识MongoDB

    粗知拙见:将数据通过类似json的形式存储于文档中。

     安装只需要选择对应的文件夹即可,注意位置D:softwareMongoDB

    1:配置环境变量并检验是否安装成功(mongod -help)

    2:启动数据库服务

    创建一个批处理文件,mongoDB.bat 其语法为 

    mongod --dbpath 路径 (mongod --dbpath D:softwareMongoDBDATA)

    或者,直接运行以上命令(本机是配置了环境变量)

    3:启动数据客户端

    创建一个批处理文件,mongoClient.bat 其语法为 

    mongo 地址+端口/用户名  (mongo 127.0.0.1:27017/admin)

    或者,直接运行以上命令(本机是配置了环境变量)

    mongo 127.0.0.1:27017/admin 

    1:use+数据库名(use Aaron)
    如果没有则创建,如果有就转到指定数据库。
    2:show dbs (展示所有数据库)
    新创建的数据库可能没有,需要插入一条数据
    3:db.数据库名.insert({"key":"Value"})
    4:数据库的删除,先切换到指定数据库
    db.dropDatabase()
    01 数据库的创建与删除
    1:增
         方式一:插入文档数据时候,如果集合不存在会自动创建
                    db.集合名称.insert({"key":"Value"})
         方式二:创建文档
         db.createCollection(name,options)           
    2: 删
        db.集合名称.drop()
    3:查
        show collections
        show tables
    集合(表)的增删查

    options 中的参数

    capped:是否创建固定集合,如果是,需要设置Size大小。一旦数据超过这个大小后,会自动覆盖历史数据。

    autoIndexId:自动在id字段创建索引

    size:为固定集合指定一个最大值

    max:集合中包含文档最大数

    示例:db.createCollection("Student",{capped:true,autoIndexId:true,size:1024000,max:1000}) 

    1:增
        方式一:直接新增一个文档
        db.集合名.insert({"key":value})
        方式二:先定义一个文档,再插入
        document(
           {"key":value}
        )
        db.集合名.insert(document)
    2:删
        db.集合名.remove(
            {条件},
            {
                justOne:是否只删除第一条
            }
        )
        一键毁所有
        db.集合名.remove(}
        
    3:改
       db.集合名.update(
            {条件:类似where},
            {$set:{字段}},
            {
                upsert:update+insert如果不存在,则插入,默认false,不插入
                multi:默认false,只更新第一条。如果为true,全部更新
                writeConcern:
            }
       )
       db.集合名.save(
            {文档},
            {
                writeConcern:
            }
       )
    4:查
        db.集合名.find({条件})
        db.集合名.findOne({条件})
    文档 增删改查

    1:条件查询
    等于                             {"key":"Value"}            where key = 'Value'
    不等于(noequal)                 {"key":{$ne:Value}}       where key != Value
    大于(greater than)                 {"key":{$gt:Value}}       where key > Value
    大于等于(greater than equal)     {"key":{$gte:Value}}       where key >= Value
    小于(less than)                 {"key":{$lt:Value}}       where key < Value
    小于等于(less than equal)         {"key":{$lte:Value}}       where key <= Value
    2:模糊查询
    包含                             {"key":/Value/}             where key like '%Value%'
    开头                             {"key":/^Value/}         where key like 'Value%'
    结尾                             {"key":/Value$/}         where key like '^Value'
    条件查询

    修改器名称            语法                            备注            
    $set                {$set:{field:value}}            指定一个字段,存在则修改,否则新增
    $inc                {$inc:{field:value}}            指定一个数值类型字段,对其进行增加、减少
    $unset                {$unset:{field:1}}                删除一个键值对
    $push                {$push:{field:value}}            指定一个数组类型字段,存在则插入(如果是非数组类型报错),否则新增
    $addToSet            {$addToSet:{field:value}}        指定一个数组类型字段的值,存在则不操作,否则新增
    $pop                {$pop:{field:1}}                删除一个数组类型字段的某个值(1:最后一个,-1:第一个)
    $pull                {$pull:{field:1}}                删除一个数组类型字段的指定值
    6. $addToSet与$each结合完成批量数组更新
    db.Student.update({"id":2012094016},{$addToSet:{books:{$each:["C#","java","db","java"]}}})
              
    修改器

     4:数据类型

    Object  ID :Documents 自生成的 _id

    Object ID:
    
      每个文档都有一个属性,为_id保证文档的唯一性;
    
      可以自己去设置_id插入文档
    
      如果自己没设置,mongoDB为每个文档提供一个独特的_id ,是一个12字节十六进制数
    
          前4个字节为当前时间戳
    
          接下来的3个字节为机器ID
    
          接下来2个字节为mongo的服务进程ID
    
          最后3个是简单的增量值
    Object 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类型,时间戳可以秒杀一切时间类型)

  • 相关阅读:
    升级windows 11小工具
    windows 10更新升级方法
    您需要了解的有关 Oracle 数据库修补的所有信息
    Step by Step Apply Rolling PSU Patch In Oracle Database 12c RAC Environment
    Upgrade Oracle Database Manually from 12.2.0.1 to 19c
    如何应用版本更新 12.2.0.1.210420(补丁 32507738 – 2021 年 4 月 RU)
    xtrabackup 安装、备份和恢复
    Centos_Lvm expand capacity without restarting CentOS
    Centos_Lvm_Create pv vg lv and mount
    通过全备+relaylog同步恢复被drop的库或表
  • 原文地址:https://www.cnblogs.com/YK2012/p/10676918.html
Copyright © 2011-2022 走看看