MongoDB学习笔记
数据类型
- Boolean:布尔
- Double:数字
- String:字符串:UTF-8
- Array:数组
- Object:对象
- Object ID:对象ID
- Timestamp:时间戳
- Date:日期
- Symbol:符合
- Binary Data:二进制
- Code:代码类型
- 正则表达式
数据库操作
# 如果数据库不存在就创建数据库,否则切换数据库
use 数据库名称
# 查看当前数据库
db
# 查看所有数据库,注意没有集合的数据库不会显示
show dbs
# 删除当前数据库
db.dropDatabase()
集合操作
# 查看数据库所有集合名称
show collections
# 创建集合,options 表示可选配置
db.createCollection("集合名称", options)
# 删除集合
db.集合名.drop()
文档操作
文档基础增删改查
# 插入文档
db.集合名称.insert(文档数据)
db.集合名称.save(文档数据)
# 查询所有文档
db.集合名称.find()
# 根据条件查询文档
db.集合名称.find({文档查询条件})
# 以易读的方式查询文档
db.集合名称.find({文档查询条件}).pretty()
# OR 查询,其余都是and查询
db.集合名称.find({$or: [{查询条件}]})
# 更新文档,
# upsert表示如果不存在更新记录,是否插入数据,true为插入,false为不插入
# multi表示是否全部更新,true为全部更新,false为只更新查询到的第一条数据
db.集合名称.update(
{文档查询条件},
{$set:{更新的数据}},
{upsert:布尔类型,multi:布尔类型,writeConcern:异常级别文档类型}
);
# 删除文档
# justOne如果为true只删除查询中的第一条文档,为false删除查询的所有文档
db.集合名称.remove(
{文档查询条件},
{justOne: 布尔类型, writeConcern:异常级别文档类型}
)
# 删除所有文档
db.集合名称.remove({})
文档特殊查询
# 分页查询
db.集合名称.find().limit(查询数量).skip(从第几个开始查询)
# 排序查询,1表示升序,-1表示降序
db.集合名称.find().sort({"指定域":升序或者降序})
# 创建索引
db.集合名称.createIndex(keys,options)
# 分组后计算,第一个指定域用于分组,第二个指定域用于计算
db.user.aggregate([{$group:{_id: "$指定域", "聚合后的别名": {$sum: "$指定域"}}}])