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

  • 相关阅读:
    【RabbitMQ】10 深入部分P3 死信队列(交换机)
    【RabbitMQ】09 深入部分P2 消费限流 & TTL
    【RabbitMQ】08 深入部分P1 可靠性投递
    【RabbitMQ】06 Spring整合RabbitMQ
    【RabbitMQ】07 SpringBoot整合RabbitMQ
    【RabbitMQ】05 通配符模式
    【RabbitMQ】04 路由模式
    【RabbitMQ】03 订阅模式
    【RabbitMQ】02 工作队列模式
    【RabbitMQ】01 简单模式
  • 原文地址:https://www.cnblogs.com/YK2012/p/10676918.html
Copyright © 2011-2022 走看看