增
# 创建数据库
use 数据库名;
# 创建集合
db.createCollection("集合名",参数); # 一般是创建数据时自动创建集合
删
# 删除数据库
db.dropDatabase 数据库名;
# 删除集合
db.集合名.drop();
# 删除数据(指定条件)
db.集合名.remove({查询条件});
# 删除数据(所有数据)
db.集合名.remove({});
改
# 新增数据
db.集合名.insert({"键":"值","键":"值"...}); # 若集合不存在,则自动创建集合
# 查询数据
db.集合名.find();
# 修改数据(修改整个集合)
db.集合名.update({查询条件},{修改目标});
# 修改数据(修改集合中单个键值对)
db.集合名.update({查询条件},{$set:{修改目标}});
# 创建索引
db.集合名.createIndex({"键":1,"键":-1}); # 1:升序索引;-1:降序索引
db.集合名.ensureIndex({"键":1,"键":-1}); # 1:升序索引;-1:降序索引
查
# 查看数据库列表
show dbs;
# 查看集合
show collections; # 或者是 show tables;
# 查看当前所在数据库
db;
# 查找集合中第一条数据
db.集合名.findOne();
# 输出格式化
db.集合名.find().pretty() # 一般是在小黑窗里面查询时用得到
# 比较查询-大于
db.集合名.find({"键":{$gt:"值"}});
# 比较查询-小于
db.集合名.find({"键":{$lt:"值"}});
# 比较查询-大于等于
db.集合名.find({"键":{$gte:"值"}});
# 比较查询-小于等于
db.集合名.find({"键":{$lte:"值"}});
# 比较查询-区间
db.集合名.find({"键":{$gt:值,$lt:"值"}}); # 开区间 (x,y)
db.集合名.find({"键":{$gte:值,$lte:"值"}}); # 闭区间 [x,y]
# 比较查询-不等于
db.集合名.find({"键":{$ne:"值"}});
# 判断在集合中
db.集合名.find({"键":{$in:["值","值","..."]}});
# 判断不在集合中
db.集合名.find({"键":{$nin:["值","值","..."]}});
#值的个数
db.集合名.find({"键":{$size:"值"}});
# 判断键名是否存在
db.集合名.find({"键":{$exists:true|false}}); # true:存在;false:不存在
# 多个条件中满足一个
db.集合名.find({$or:[{条件},{条件},{...}]}); # 条件:{"键":"值"}
# 模糊查询
db.集合名.find({"键":"值"}); # 值:正则表达式(JS中语法)
# 查询结果排序
db.集合名.find({}).sort({"键":1,"键":-1}); # 1:升序;-1:降序
# 输出前N条记录
db.集合名.find({}).limit(number); # number:数字,限制输出前N条记录
# 跳过输出前N条记录
db.集合名.find({}).skip(number); # number:数字,跳过输出前N条记录
# 计数
db.集合名.aggregate({$group:{_id:"$键",别名:{$sum:1}}}); # $sum:1特定用法:计数
# 求和
db.集合名.aggregate({$group:{_id:"$键",别名:{$sum:"$键"}}}); # _id:null表示不分组
# 平均值
db.集合名.aggregate({$group:{_id:"$键",别名:{$avg:"$键"}}});
# 查询结果分组
db.集合名.aggregate({$group:{_id:"$键",别名:{$push:"$键"}}}); # 类似于拼接字段group_concat(),拼接结果是一个数组
# 最大值
db.集合名.aggregate({$group:{_id:"$键",别名:{$max:"$键"}}});
# 最小值
db.集合名.aggregate({$group:{_id:"$键",别名:{$min:"$键"}}});
# 分组第一个值
db.集合名.aggregate({$group:{_id:"$键",别名:{$first:"$键"}}});
# 分组最后一个值
db.集合名.aggregate({$group:{_id:"$键",别名:{$last:"$键"}}});
# 多个聚合函数
db.集合名.aggregate({$group:{_id:"$键",别名:{$sum:"$键"},别名:{$avg:"$键"},...}}); # 逗号分隔,最后一个不打逗号
# 匹配条件
db.集合名.aggregate({$match:{"键":{条件}}});
# 匹配分组
db.集合名.aggregate([{$match:{"键":{条件}}},{$group:{_id:"$键",别名:{$sum:1}}}]); # 对匹配结果进行聚合
# 限制输出字段
db.集合名.aggregate({$project:{"键":1|0}}); # 1:显示;0:不显示
# 拆分数组字段
db.集合名.aggregate({$unwind:"键"});