在Ubuntu下安装MongoDB以及基本操作

MongoDB是著名的非关系型数据库,由于其存取十分灵活,在一些web应用上得到了比关系型数据库更广泛的运用

一、MongoDB安装

  1. 安装mongoDB

    1
    sudo apt-get install mongodb
  2. 查看版本

    1
    mongo -version
  3. 启动和关闭mongoDB服务

    1
    2
    service mongodb start
    service mongodb stop
  4. 查看是否在运行

    1
    pgrep mongo -l
  5. 卸载mongoDB

    1
    sudo apt-get --purge remove mongodb mongodb-clients mongodb-server

二、MongoDB基本操作

  • 启动MongoDB命令行工具

    1
    mongo

    1
    2
    3
    4
    5
    6
    7
    show dbs 					#显示所有数据库
    show collections #显示当前数据库中的集合(collection类似mysql等关系数据库中的table)
    show users #显示所有用户
    use DBname #切换当前数据库至DBname
    db.help() #显示数据库操作命令
    db.yourCollection.help() #显示集合操作命令,yourCollection是集合名
    exit #退出命令行工具
  • 创建数据库

    1
    use DBname					#不需要事先定义,现用现创建

  • 创建Collection

    1
    db.createCollection('newCollection')

    或直接向Collection中插入数据

  • 插入数据

    1
    2
    3
    db.collentionName.insert({_id:1, name: 'Ph0en1x', age: 20}) 
    # or
    db.collectionName.save({_id:1, name: 'Ph0en1x', age: 22})

    _id不写会自动生成,当_id重复时,insert不会插入新的记录,而save会进行更新

  • 查找数据

    1
    db.youCollection.find(criteria, filterDisplay)

    criteria :查询条件,可选

    filterDisplay:筛选显示部分数据,如显示指定列数据,可选(当选择时,第一个参数不可省略,若查询条件为空,可用{}做占位符,如下例第三句)

    例如

    1
    2
    3
    4
    5
    db.collectionName.find()  							#查询所有记录
    db.collectionName.find({name: 'Ph0en1x'}) #查询name='Ph0en1x'的记录
    db.collectionName.find({},{name:1, sge:1}) #筛选出指定列name、age数据
    db.collectionName.find({name: 'Ph0en1x', age: 22}) #and 与条件查询
    db.student.find({$or: [{age: 22}, {age: 25}]}) #or 条件查询

  • 修改数据

    1
    db.youCollection.update(criteria, objNew, upsert, multi )

    criteria: update的查询条件

    objNew :update的对象和一些更新的操作符

    upsert :如果不存在update的记录,是否插入objNew,true or false

    multifalse默认,只更新查询到的第一条,true更新全部

    其中criteriaobjNew是必选参数,upsertmulti可选参数

    例如

    1
    db.collectionName.update({name: 'Ph0en1x'}, {$set: {sage: 13}}, false, true)

  • 删除数据

    1
    db.collectionName.remove({name: 'Ph0en1x'})