• MongoDB 基础操作


     - 启动MongoDB 默认端口27017

    mongod --dbpath "数据库目录"

     - 查看所有存在磁盘上的数据库

    show dbs

     -  创建数据库或切换数据库 (使用了不存在的对象即创建该对象)

    use 数据库名

     - 查看当前数据库存在磁盘上的数据表

    show tables

     - 创建表

    数据库名.表名  

     - 添加 insert

    use locals # 创建数据库
    db.user.insert() # 创建表(user) + 添加 insert({})
    show dbs  # 查看数据库是否创建
    # 官方推荐写法
    db.user.insertMany([{}]) # 添加多条数据 [{},{},{}]
    db.user.insertOne({}) # 添加一条

     - 查看  find

    db.user.find()
    # 推荐用
    db.user.findOne({})
    # 并列条件查询
    db.user.find({"id":1,"age":20})
    
    # 或条件查询 $or
    db.user.find({$or:[{age:20},{name:"jam"}]})
    # 同一个字段的 或查询 $in
    db.user.find({age:{$in:[20,30,40]}})
     # 满足全部条件查询 $all
    db.user.find({age:{$all:[20,10,30]}})
    # 数学比较符
    db.user.find({age:{$gt: 73}})
    $gt : 大于 
    $gte: 大于等于
    $lt : 小于
    $lte: 小于等于
    $eq : 等于

     - 数据类型

    MongoDB中的数据类型:

     Object  ID :Documents 自生成的 _id

    "_id" : ObjectId("5b151f8536409809ab2e6b26")
    
    #"5b151f85" 代指的是时间戳,这条数据的产生时间
    #"364098" 代指某台机器的机器码,存储这条数据时的机器编号
    #"09ab" 代指进程ID,多进程存储数据的时候,非常有用的
    #"2e6b26" 代指计数器,这里要注意的是,计数器的数字可能会出现重复,不是唯一的
    #以上四种标识符拼凑成世界上唯一的ObjectID
    #只要是支持MongoDB的语言,都会有一个或多个方法,对ObjectID进行转换
    #可以得到以上四种信息
    
    #注意:这个类型是不可以被JSON序列化的
    
    这是MongoDB生成的类似关系型DB表主键的唯一key,具体由24个字节组成:
    
    0-8字节是时间戳,
    
    9-14字节的机器标识符,表示MongoDB实例所在机器的不同;
    
    15-18字节的进程id,表示相同机器的不同MongoDB进程。
    
    19-24字节是计数器
    
     
    View Code

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

     - 更新 update 

    db.user.update({"age":20}, {$set:{"name":"lee"}})
    # ({"条件"},{"关键字":{"修改内容"}}) 如果条件为空,那么将会修改Collection中所有的数据
    # 推荐写法
    db.user.updateOne({"name":"lee"},{$set:{"age":20}}) # 改条件匹配的第一条
    db.user.updateMany({"name":"lee"},{$set:{"age":18}}) # 改全部

     - 删除  remove / delete

    #db.user.remove({"age":20})
    
    # 推荐写法
    db.user.deleteOne({"name":"lee"}) # 删除 条件匹配第一条
    db.user.deleteMany({"name":"jam"}) # 删除  条件匹配的全部

     - 修改器

       - $set :修改 

    db.user.updateOne({"name":"lee"},{$set:{"age":20}})

       - $unset: 强制删除字段

    db.user.updateOne({"name":"lee"},{$unset:{"age":1}}) # 1也可以写成true 只要看到age字段就会删除

       - $ inc: 引用增加 在原有值的基础上增加

    db.user.updateMany({},{$inc:{age:1}}) # 减少即为 -1

        -  针对array的修改器(python列表):

       - $push 增加元素 

    db.user.updateOne({"name":"lee"},{$push:{"hobby":"篮球"}})

       -  $pull 删除元素

    db.user.updateOne({"name":"lee"},{$pull:{"hobby":"篮球"}})

       - $pushall 迭代添加

    db.user.updateOne({"name":"lee"},{$pull:{"hobby":["篮球","足球"]}})

       - $pop 删除第一条 / 最后一条 数据

    db.user.updateOne({"name":"lee"},{$pop:{"hobby":1}}) # 最后一条
    db.user.updateOne({"name":"lee"},{$pop:{"hobby":-1}}) # 第一条

     - $ 字符 存储符合条件的元素下表索引

     - Object操作 (字典直接 。字段就行 )

    db.user.updateOne({"info.name":"jam"},{$set:{"info.age":20}})

     - Array中嵌套object

    db.user.updateOne({"hobby.age":30},{$set:{"hobby.$.age":25}})

     - Object中嵌套Array

    db.user.updateOne({"kecheng.class":1},{$set:{"kecheng.class.$":2}})

     - 跳过

    db.user.find({}).skip(5) # 跳过五条数据

     - 分页

    db.user.find({}).limit(5)  # 只显示5条数据

     - 排序

    db.user.find({}).sort({age:1}) # 正序
    db.user.find({}).sort({age:-1}) # 倒序
  • 相关阅读:
    ScrollView 实现循环轮播
    UINavigationController和UITabBarController合用
    iOS开发网络篇—网络编程基础
    iOS开发网络篇—搭建本地服务器
    iOS开发网络篇—HTTP协议
    iOS开发网络篇—GET请求和POST请求
    UIView
    iOS准备程序
    iOS小程序-混合计算器
    IOS入门-计算机小程序
  • 原文地址:https://www.cnblogs.com/lzmdbk/p/10279921.html
Copyright © 2020-2023  润新知