MongoDb 30分钟入门

作者: Jay_Wei | 来源:发表于2019-07-02 08:06 被阅读16次

    MongoDB

    MongoDB 是一个基于分布式文件存储的数据库。由 C++语言编写,它是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。

    MongoDB 概念解析

    SQL术语/概念 MongoDB术语/概念 解释/说明
    database database 数据库
    table collection 数据库表/集合
    row document 数据记录行/文档
    column field 数据字段/域
    index index 索引
    table joins 表连接,MongoDB不支持
    primary key primary key 主键,MongoDb自动将_id字段设置为主键

    安装MongoDB

    MongoDB 提供了 linux 各发行版本 64 位的安装包,你可以在官网下载安装包。
    下载地址:https://www.mongodb.com/download-center#community

    下载完安装包,并解压 tgz

    curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.0.6.tgz    # 下载
    tar -zxvf mongodb-linux-x86_64-3.0.6.tgz                                   # 解压
    mv  mongodb-linux-x86_64-3.0.6/ /usr/local/mongodb                         # 将解压包拷贝到指定目录
    export PATH=<mongodb-install-directory>/bin:$PATH #MongoDB 的可执行文件位于 bin 目录下,所以可以将其添加到 PATH 路径中:
    

    创建数据库目录

    MongoDB的数据存储在data目录的db目录下,但是这个目录在安装过程不会自动创建,所以你需要手动创建data目录,并在data目录中创建db目录。。
    注意:/data/db 是 MongoDB 默认的启动的数据库路径(--dbpath)

    mkdir -p /data/db
    

    启动MongoDb服务器

    输入命令,回车

    cd /usr/local/mongodb/bin/
    mongod --dbpath /data/db
    

    MongoDb服务启动成功,如图


    image

    启动MongoDb服务器后,我们启动一个终端连接到 MongoDb 服务器。(xshell重新打开一个窗口)
    连接MongoDb服务器命令的语法如下

    mongo server_ip:port/dbname -u user -p password
    

    因为这里我连接的是本地服务器,直接输入mongo,即可进行shell后台,可进行数据库的CURD操作。

    image

    MongoDb的crud

    1.MongoDb创建数据库

    MongoDB 创建数据库的语法格式如下:

    use database_name
    

    如果数据库不存在,则创建数据库,否则切换到指定数据库。

    image

    如图创建了huaxiao的数据库,但是在使用show dbs命令时,并没有看到数据库存在,这是因为该数据库中还没有数据。要显示它,我们需要向数据库插入一些数据。

    2.删除数据库

    MongoDB 删除数据库的语法格式如下:

    db.dropDatabase()
    

    接下来我们切换到数据库 huaxiao,执行删除操作:

    > use huaxiao
    switched to db huaxiao
    > show dbs
    huaxiao  0.078GB
    local    0.078GB
    > db.dropDatabase()
    { "dropped" : "huaxiao", "ok" : 1 }
    > show dbs
    local  0.078GB
    > 
    

    3.MongoDb创建表(集合)

    MongoDB 中使用 createCollection() 方法来创建集合。

    db.createCollection(name, options)
    

    参数说明:

    • name: 要创建的集合名称
    • options: 可选参数, 指定有关内存大小及索引的选项

    下图创建了一个数据库huaxiao,创建了礼物集合gift


    image

    4.删除表(集合)

    集合删除语法格式如下:

    db.collection.drop()
    

    以下实例删除了集合 gift:

    > show tables;
    gift
    system.indexes
    > db.gift.drop()
    true
    > show tables;
    system.indexes
    > 
    

    5.MongoDB 插入文档

    MongoDB 使用 insert() 或 save() 方法向集合中插入文档,语法如下:

    db.collection.insert(document)
    

    以下文档可以存储在 MongoDB 数据库 的 gift 集合中:


    image

    6.MongoDB 查询文档

    MongoDB 查询数据的语法格式如下:

    db.collection.find(query, projection)
    

    参数说明:

    • query :可选,使用查询操作符指定查询条件
    • projection :可选,使用投影操作符指定返回的键。查询时返回文档中所有键值, 只需省略该参数即可(默认省略)。

    如果你需要以易读的方式来读取数据,可以使用 pretty() 方法,语法格式如下:

    db.collection.find(query, projection).pretty()
    

    以下实例我们查询了集合 col 中的数据:

    db.gift.find().pretty();
    {
        "_id" : ObjectId("5d1951a6659f4eaa30bac84f"),
        "id" : "1",
        "name" : "守护之心",
        "price" : "10"
    }
    

    7.MongoDB 删除文档

    remove() 方法的基本语法格式如下所示:

    db.collection.remove(
       <query>,
       {
         justOne: <boolean>,
         writeConcern: <document>
       }
    )
    

    参数说明:

    • query :(可选)删除的文档的条件。
    • justOne : (可选)如果设为 true 或 1,则只删除一个文档,如果不设置该参数,或使用默认值 false,则删除所有匹配条件的文档。
    • writeConcern :(可选)抛出异常的级别。

    我们移除 name 为 '守护之心' 的文档:

    > db.gift.remove({'name':'守护之心'})
    WriteResult({ "nRemoved" : 1 })
    

    如果你只想删除第一条找到的记录可以设置 justOne 为 1,如下所示:

    db.COLLECTION_NAME.remove(DELETION_CRITERIA,1)
    

    8.MongoDB 更新文档

    update() 方法用于更新已存在的文档。语法格式如下:

    db.collection.update(
       <query>,
       <update>,
       {
         upsert: <boolean>,
         multi: <boolean>,
         writeConcern: <document>
       }
    )
    

    参数说明:

    • query : update的查询条件,类似sql update查询内where后面的。
    • update : update的对象和一些更新的操作符(如,inc...)等,也可以理解为sql update查询内set后面的
    • upsert : 可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
    • multi : 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。
      writeConcern :可选,抛出异常的级别。

    我们在集合 gift 中插入如下数据:

    >db.gift.insert({
        "id" : "1",
        "name" : "守护之心",
        "price" : "10"
    })
    

    接着我们通过 update() 方法来更新礼物价格(price),并查看,更新成功:

    > db.gift.update({'id':'1'},{$set:{'price':'888'}})
    WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
    > db.gift.find().pretty()
    {
        "_id" : ObjectId("5d1a9e46b35668bf92c989e3"),
        "id" : "1",
        "name" : "守护之心",
        "price" : "888"
    }
    > 
    

    参考资料

    相关文章

      网友评论

        本文标题:MongoDb 30分钟入门

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