MongoDB基础语法
MongoDB 基础语法
数据库
选中数据库,不存在则创建
1 | use mydb; |
删除数据库
1 | db.dropDatabase(); |
查看当前数据库
1 | db; |
查看全部数据库
1 | show dbs; |
查看当前数据库下全部集合
1 | show collections; |
查看版本
1 | db.version(); |
集合
创建集合
1 | db.createCollection("mycol2"); |
删除集合
1 | db.myco2.drop(); |
删除集合下全部文档
1 | db.mycol2.remove(); |
查询集合下全部文档
1 | db.mycol2.find(); |
索引
创建索引
(1 升序 -1 降序)(name 索引名称,unique 唯一,background 后台创建)
1 | db.mycol2.createIndex({ |
删除全部索引
1 | db.mycol2.dropIndexes() |
删除指定索引
1 | db.mycol2.dropIndex("uk_name_age") |
查看全部索引
1 | db.mycol2.getIndexes() |
文档
添加(如果集合不存在则创建集合)
insert 已不再建议使用,使用 insertOne 或 insertMany
区别:
https://stackoverflow.com/questions/36792649/whats-the-difference-between-insert-insertone-and-insertmany-method
insert 单个插入返回 WriteResult 对象,批量插入返回一个 BulkWriteResult 对象,insertOne 和 insertMany 返回插入对象的 ObjectId
insert 命令在成功和错误情况下都返回一个文档,insertOne 和 insertMany 命令会引发异常
添加单条文档
1 | db.mycol2.insertOne({ |
添加多条文档
1 | db.mycol2.insertMany([ |
删除
指定条件删除文档(remove,deleteOne,deleteMany)
1 | db.mycol2.deleteMany({ |
查询
in,and,or使用
1 | db.mycol2.find( |
比较(gt >,lt <,gte >=,lte <=,ne !=)
1 | db.mycol2.find({ |
limit 和 skip 使用
1 | db.mycol2.find().limit(2).skip(1); |
排序(1 升序,-1 降序)
1 | db.mycol2.find().sort({ |
统计数量
1 | db.mycol2.find().count() |
正则
1 | db.mycol2.find({ |
模糊查询(左、右、全)
1 | db.mycol2.find({ |
查询单个字段并去重
1 | db.mycol2.distinct("name"); |
时间
1 | db.mycol2.find({ |
指定字段(1 查询,0 排除)
1 | db.mycol2.find({}, { |
更新
带_id是添加,不带_id则更新
1 | db.mycol2.save({ |
根据条件更新一条
1 | db.mycol2.updateOne( |
更新多条
1 | db.mycol2.updateMany({ |
嵌套字段
1 | db.inventory.insertMany( [ |
精确匹配
1 | db.inventory.find({ |
相等匹配
1 | db.inventory.find({ |
指定匹配
1 | db.inventory.find({ |
数组
1 | db.inventory.insertMany([ |
指定顺序和大小查询
1 | db.inventory.find({ |
不指定
1 | db.inventory.find({ |
包含指定元素
1 | db.inventory.find({ |
组合满足条件
1 | db.inventory.find({ |
满足全部条件
1 | db.inventory.find({ |
使用长度查询
1 | db.inventory.find({ |
数组文档
1 | db.inventory.insertMany( [ |
对字段进行查询
1 | db.inventory.find({ |
使用数组的索引查询
1 | db.inventory.find({ |
组合满足条件
1 | db.inventory.find({ |
满足全部条件
1 | db.inventory.find({ |
聚合
常用操作
sql | mongo |
---|---|
select | $project |
where | $match |
join | $lookup |
group by | $group |
having | $match |
order by | $sort |
limit | $limit |
sum() | $sum |
count() | $sum |
age() | $age |
min() | $min |
max() | $max |
示例
1 | db.mycol2.aggregate([ |
1 | db.mycol2.aggregate([ |