• mongoDB-2(1)


    主要内容

    1. 关系型数据库和非关系型数据库

    * Nosql不是关系模型构建的数据库,不保证数据一致性,结构灵活
    * NoSql弥补了关系型数据库高并发数据处理速度慢的缺点
    * Nosql种类多样,技术成熟度不如关系型数据库

    2. mongodb数据库特点,安装,命令设置

    3. mongodb的组成结构

    4. mongodb的数据类型

    5. 数据库操作

    * use database 选择数据库不存在则创建
    * db.dropDatabase() 删除数据库
    * show dbs 查看数据库

    命令 : mongodump 备份
    mongorestore 恢复
    mongostat 数据库监控
    mongotop 查看读写时长

    6. 集合操作:

    db.createCollection() 创建集合
    db.collection.insert() 集合不存在自动创建
    db.collection.drop() 删除集合
    db.collection.renameCollection() 重命名
    show collections 查看集合
    db.getCollection('class') 获取集合对象

    7. 文档插入
    insertOne()
    insertMany()
    insert()
    save() 当_id冲突时会替换原文档

    8. 查找函数

    find(query,field)

    ************************************************
    cookie:

    计算机基础课 : 计算机原理,算法导论,编程原理

    公众号 : python程序员 python开发者 算法爱好者

    app : 知乎 掘金

    网站 : 伯乐在线 CSDN

    一. 数据操作(续)

    1. 查找函数

    db.collection.findOne(query,field)
    功能: 查找第一个复合条件的文档
    参数: 同find
    返回:返回查找到的文档

    e.g. 查找第一个性别为男的文档
    db.class0.findOne({sex:'m'},{_id:0})


    2. query操作符使用

    操作符:mongodb中使用$符号注明的一个有特殊意义的字符串,用以表达丰富的含义,比如:$lt 表示小于

    比较操作符

    【1】 $eq 等于 =

    e.g. 年龄等于17
    db.class0.find({age:{$eq:17}},{_id:0})

    【2】 $lt 小于 <

    e.g. 字符串可以比较大小
    db.class0.find({name:{$lt:'Tom'}},{_id:0})

    【3】 $gt 大于 >

    e.g. 查找一个区间范围
    db.class0.find({age:{$gt:17,$lt:20}},{_id:0})

    【4】 $lte 小于等于 <=
    【5】 $gte 大于等于 >=
    【6】 $ne 不等于 !=

    【7】 $in 包含

    e.g. 查找年龄在数组范围的
    db.class0.find({age:{$in:[17,19,21]}},{_id:0})

    【8】 $nin 不包含

    e.g. 查找年龄不在数组范围的
    db.class0.find({age:{$nin:[17,19,21]}},{_id:0})


    逻辑操作符

    【1】 $and 逻辑与

    e.g. 查找年龄小于19 并且性别为w的
    db.class0.find({$and:[{age:{$lt:19}},{sex:{$ne:'w'}}]},{_id:0})

    * query中的多个条件本身也表示并且关系

    【2】 $or 逻辑或

    e.g. 查找年龄大于18或者性别为w
    db.class0.find({$or:[{age:{$gt:18}},{sex:'w'}]},{_id:0})

    【3】 $not 逻辑非

    e.g. 查找年龄不大于18的
    db.class0.find({age:{$not:{$gt:18}}},{_id:0})

    【4】 $nor 既不也不(多个条件均为假则结果为真)

    e.g. 年龄不大于18 性别不为 m
    db.class0.find({$nor:[{age:{$gt:18}},{sex:'m'}]},{_id:0})

    【5】 混合条件语句

    年龄大于等于19或者小于18 并且 性别为 w

    db.class0.find({$and:[{$or:[{age:{$gte:19}},{age:{$lt:18}}]},{sex:'w'}]},{_id:0})

    (年龄大于等于17的男生) 或者 (姓名叫 Abby 或者Emma)

    db.class0.find({$or:[{age:{$gte:17},sex:'m'},{name:{$in:['Abby','Emma']}}]},{_id:0})


    数组操作符

    【1】 查找数组中包含元素

    e.g. 查找score数组中元素包含大于90的文档
    db.class2.find({score:{$gt:90}},{_id:0})

    【2】 $all 查找数组中同时包含多项

    e.g. 查找数组中同时包含87,89的文档
    db.class2.find({score:{$all:[87,89]}},{_id:0})

    【3】 $size 根据数组的元素个数查找

    e.g. 查找数组中包含3个元素的文档
    db.class2.find({score:{$size:3}},{_id:0})

    【4】 $slice 用于field参数,表示查找数组哪些项

    e.g. 查找数组中的前两项
    db.class2.find({},{_id:0,score:{$slice:2}})

    e.g. 跳过数组第一项,查看后面两项
    db.class2.find({},{_id:0,score:{$slice:[1,2]}})

  • 相关阅读:
    xcode8.3 shell 自动打包脚本
    MarkDown常用语法记录
    正则表达式matcher.group()用法
    使用Jenkins进行持续集成
    Java8新特性:Stream的使用
    zookeeper windows 下配置和基础命令
    JAVA文件中获取路径及WEB应用程序获取路径方法
    共享锁(S锁)和排它锁(X锁)
    zookeeper 官方文档——综述
    zookeeper 入门指导
  • 原文地址:https://www.cnblogs.com/gyl10/p/11461029.html
Copyright © 2020-2023  润新知