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

待续