mongoDB使用

数据格式

示例:

1
2
3
4
5
{title: 'MongoDB 教程',  
tags: ['mongodb', 'database', 'NoSQL'],
likes: 100
}

使用{}包裹,每个键值对用逗号分隔,最后一个键值对后不能有逗号。
字符串用’’包裹,数字不用,数组用[]包裹,可以为字符串数组。

数据库管理

  • 显示数据库

    1
    2
    3
    4
    > show dbs
    leanote 0.078GB
    local 0.078GB

  • 创建数据库

    1
    2
    3
    # 不存在则创建,否则切换到指定数据库
    use 数据库名

  • 删除数据库

    1
    db.dropDatabase()

集合管理

集合就是 MongoDB 中最小的单位,类似关系型数据库中表的概念。

  • 显示集合

    1
    2
    3
    > show collections
    或者
    > show tables
  • 创建集合

    1
    2
    3
    4
    db.createCollection(name, options) // 集合名字,options可选
    或者
    db.COLLECTION_NAME.insert({"键值名":"键值"}) // 插入一条记录(集合不存在则自动创建)

  • 删除集合

    1
    2
    db.COLLECTION_NAME.drop()  // 删除集合name

  • 插入数据

    1
    2
    3
    4
    5
    6
    7
    8
    db.COLLECTION_NAME.insert(document)

    db.COLLECTION_NAME.save(document)
    示例:
    db.COLLECTION_NAME.insert({title: 'MongoDB 教程',
    tags: ['mongodb', 'database', 'NoSQL'],
    likes: 100
    })
  • 查询数据

    1
    2
    3
    4
    db.COLLECTION_NAME.find() // 查询所有数据
    db.COLLECTION_NAME.find().pretty() // 格式化输出
    db.COLLECTION_NAME.find({key1:value1, key2:value2}) //查询指定条件的数据

  • 删除数据

    1
    2
    3
    4
    db.COLLECTION_NAME.remove(匹配内容) // 删除所有符合条件的文档

    示例:
    db.COLLECTION_NAME.remove({title: 'MongoDB 教程'}) // 删除title为MongoDB 教程的文档
  • 更新数据

    1
    2
    3
    4
    db.COLLECTION_NAME.update(查询条件,更新内容) // 更新所有符合条件的文档

    示例:
    db.COLLECTION_NAME.update({title: 'MongoDB 教程'}, {$set: {likes: 10}}) // 更新likes为10

操作符

  • 条件操作符

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $lt	小于
    $lte 小于等于
    $gt 大于
    $gte 大于等于
    $ne 不等于
    $in 包含
    $nin 不包含

    示例:
    db.COLLECTION_NAME.find({likes: {$lt: 10}}) // 查询likes小于10的数据

  • 逻辑操作符

    1
    2
    3
    4
    5
    6
    7
    8
    $or	或
    $and 与
    $not 非
    $nor 非或
    示例:
    db.COLLECTION_NAME.find({$or: [{likes: 10}, {title: 'MongoDB 教程'}]
    }) // 查询likes等于10或title为MongoDB 教程的数据

  • 数组操作符

    1
    2
    3
    4
    5
    $all	匹配数组中多个值
    $size 匹配数组大小
    $slice 数组切片
    示例:
    db.COLLECTION_NAME.find({tags: {$all: ['mongodb', 'database']}}) // 查询tags包含mongodb和database的数据
  • 更新操作符

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    $set	设置字段
    $unset 删除字段
    $inc 增加字段
    $rename 重命名字段
    $push 追加数组
    $pop 删除数组
    $pull 删除数组中指定值
    $bit 位操作
    $min 最小值
    $max 最大值
    $currentDate 当前日期
    $addToSet 添加数组
    示例:
    db.COLLECTION_NAME.update({title: 'MongoDB 教程'}, {$set: {likes: 10}}) // 更新likes为10

    待续