美文网首页
MongoDB基础学习笔记

MongoDB基础学习笔记

作者: let423 | 来源:发表于2019-01-15 22:58 被阅读0次

    基础知识

    特点
    • 是一个面向文档存储的数据库,操作起来比较简单和容易
    • 可以在 MongoDB 记录中设置任何属性的索引值
    • 可以通过本地或者网络创建数据镜像
    一些术语
    SQL术语 MongoDB术语 说明
    database database 数据库
    table collection 数据库表/集合
    row document 数据记录行/文档
    column field 数据字段/域
    index index 索引
    table joins - 表连接,MongoDB不支持
    primary key primary key 主键,MongoDB自动将_id字段设置为主键
    数据库
    • 一个 MongoDB 可以建立多个数据库
    • "show dbs"可以显示所有数据的列表
    • 数据库不能是空字符串、不得含有空格、空字符
    • 应全部小写
    • 最多64字节
    • 特殊数据库:admin、local、config
    文档
    • 文档是一组键值对(BSON)
    • take care:
    (1) 文档中的键值对是有序的
    (2) 文档中的值不仅可以是字符串,也可以是其它几种数据类型
    (3) MongDB 的文档不能有重复的键
    (4) MongoDB 区分类型和大小写
    (5) 文档的键是字符串,除了少数例外的情况,键可以使用任意UTF-8字符
    
    • 文档键命名规范
    (1)不能含有空字符,这个字符用来表示键的结尾
    (2). 和 $ 有特别的意义,只有在特定环境下才能使用
    (3)以下划线开头的键是保留的
    
    集合
    • 集合就是MongoDB的文档组
    • 集合存在于数据库,没有固定的结构
    objectId
    • 类似唯一地主键,可以很快去生成和排序,包含了12bytes, 4时间戳--3机器标识码--2PID--3随机数
    • 可以通过getTimestamp函数来获取到文档的创建时间
    # 取文档的创建时间:
    > var newObject = ObjectId()
    > newObject.getTimestamp()
    ISODate("2017-11-25T07:21:10Z")
    
    # ObjectId转为字符串:
    > newObject.str
    5a1919e63df83ce79df8b38f
    

    相关操作

    MongoDB创建数据库
    1. 创建数据库
    > use mydatabase
    switched to db runoob
    > db
    mydatabase
    >
    
    1. 查看数据库
    > show dbs
    > db
    
    MongoDB删除数据库
    1. db.dropDatabse()
    2. db.collecion.drop() 删除集合,其中collection是集合的名字
    MongoDB创建集合
    1. db.createCollection(name, options)
      name 要创建的集合名称
      options 指定有关内存大小以及索引的选项
    2. 在MongoDB中,不需要创建集合,当需要插入文档时,MongoDB会自动创建集合
    MogonDB删除集合
    1. db.collection.drop()
      返回值:删除成功返回true,否则返回false
    2. show collcetions 查看已存在的集合
    MongoDB插入文档
    1. 使用insert()或save()方法向集合中插入文档
    db.COLLECTION_NAME.insert(document).insert(document)
    
    MongoDB更新文档
    1. update()用于更新已经存在的文档
    db.collection.update(
    <query>,
    <update>,
    {
    upsert: <boolean>,
    multi: <boolean>,
    writeConcern: <document>
    })
    
    
    >db.col.update({'title':'MongoDB 教程'},{$set:{'title':'MongoDB'}})
    
    1. save() 方法通过传入的文档来替换已有文档
    db.collection.save(
    <document>,
    {
    writeConcern: <document>
    })
    
    >db.col.save({
    "_id" : ObjectId("56064f89ade2f21f36b03136"),
    "title" : "MongoDB",
    "description" : "MongoDB 是一个 Nosql 数据库",
    "by" : "Runoob",
    "url" : "http://www.runoob.com",
    "tags" : [
    "mongodb",
    "NoSQL"
    ],
    "likes" : 110})
    
    MongoDB删除文档
    1. remove()函数是用来移除集合中的数据
    2. 语法:
    db.collection.remove(
    <query>,
    {
    justOne: <boolean>,
    writeConcern: <document>
    })
    
    MongoDB查询文档

    db.collection.find() 以非结构化的方式来显示所有文档
    db.collection.find().pretty() 以易读的方式来读取数据
    db.collection.findOne() 只返回一个文档

    1. MongoDB与RDBMS where语句比较
    操作 格式 范例 RDBMS中的类似语句
    等于 {<key>:<value>} db.col.find({"by":"菜鸟教程"}).pretty() where by = '菜鸟教程'
    小于 {<key>:{$lt:<value>}} db.col.find({"likes":{$lt:50}}).pretty() where likes < 50
    小于或等于 {<key>:{$lte:<value>}} db.col.find({"likes":{$lte:50}}).pretty() where likes <= 50
    大于 {<key>:{$gt:<value>}} db.col.find({"likes":{$gt:50}}).pretty() where likes > 50
    大于或等于 {<key>:{$gte:<value>}} db.col.find({"likes":{$gte:50}}).pretty() where likes >= 50
    不等于 {<key>:{$ne:<value>}} db.col.find({"likes":{$ne:50}}).pretty() where likes != 50
    1. MongoDB AND条件
    >db.col.find({key1:value1, key2:value2}).pretty()
    
    1. MongoDB OR条件
    >db.col.find({$or:[{"by":"菜鸟教程"},{"title": "MongoDB 教程"}]}).pretty()
    
    1. AND和OR联合使用
    >db.col.find({"likes": {$gt:50}, $or: [{"by": "someone"},{"title": "MongoDB 教程"}]}).pretty()
    
    MongoDB条件操作符
    符号 解释
    $gt 大于
    $lt 小于
    $gte 大于等于
    $lte 小于等于
    MongoDB Limit与Skip方法
    1. limit() 在MongoDB中读取指定数量的数据记录
    >db.COLLECTION_NAME.find().limit(NUMBER)
    
    1. skip() 来跳过指定数量的数据,接受一个数字参数作为跳过的记录条数,skip()方法默认参数为0
    >db.COLLECTION_NAME.find().limit(NUMBER).skip(NUMBER)
    
    MongoDB 排序

    1.sort () 方法可以通过指定参数指定排序的字段, 并使用 1-1 来指定排序的方式,其中 1 为升序排序,-1 为降序排序

    2.语法:

    >db.COLLECTION_NAME.find().sort({KEY:1})
    
    MongoDB 索引
    1. 索引的作用:能够极大的提高查询的效率
    2. 创建索引:createIndex()
    >db.collection.createIndex(keys, options)
    

    说明:key值为要创建的索引字段,1为按升序创建索引,-1为按降序创建索引

    MongoDB 聚合
    1. MongoDB中聚合(aggregate)主要用于处理数据(诸如统计平均值,求和),并返回计算后的数据结果。
    2. 语法:
    >db.COLLECTION_NAME.aggregate(AGGREGATE_OPERATION)
    
    学习链接

    官方文档:https://docs.mongodb.com/
    菜鸟教程:http://www.runoob.com/mongodb/mongodb-tutorial.html

    相关文章

      网友评论

          本文标题:MongoDB基础学习笔记

          本文链接:https://www.haomeiwen.com/subject/atnudqtx.html