MongoDB中一行数据称为文档
一行数据是一行json数据
MongoDB不支持外键
MongoDB自带 Id _id
MongoDB概念
和mysql一样一个数据库多张表
MongoDB基本操作
查看所有的数据库
show dbs
切换数据库
use 数据库名
当给一个数据库插入数据会自动创建这个数据库
查看表
1.show tables
2.show collections
删除表
db.表名.drop() true 为删除成功
删除数据库
1.先切换到要删除的数据库中:user 数据库名
2.删除数据库:db.dropDatabase()
新增数据
1.db.表名.insert({});
2.db.表名.save({});
更新数据
db.表名.update(
{<query>},//查询条件
{$set:<update>},//更新的数据{key:value}
[
upsert:<boolean>,//可选,如果不存在该数据,是否插入,true为插入,默认false不插入
multi:<boolean>,//可选,false只更新查询到的第一条数据,true更新查询到的所有数据
writeConcern:<document>//可选,抛出异常的级别
]
)
删除数据
1.db.表名.remove(
<query>,//可选,删除的文档的条件,本人叫它删除查询
{
justOne:<boolean>,//可选,false只删除查询到的第一条数据,true删除查询到的所有数据
writeConcern:<document>//可选,抛出异常的级别
}
)
2.db.表名.deleteOne({key:value})
3.db.表名.deleteMany({})
查询数据
db.表名.find({key:value}).pretty()
查询数据条数
db.表名.find().count()
查询or
db.表名.find({$or:[{key:value},{key:value}]})
分页查询:skip()跳过几条,limit()查询几条
db.表名.find().limit(x).skip(x);
倒序查询:-1倒序、1正序
db.表名.find().sort({key:-1})
索引
查看索引
db.表名.getIndexes()
创建索引
db.表名.createIndex({key:1或-1})
删除索引
db.表名.dropIndex(索引名)
db.表名.dropIndexs()删除_id以外的索引
创建联合索引
db.表名.createIndex({key:1或-1},{key:1或-1}...)
查看索引大小、单位:字节
db.表名.totalIndexSize()
执行计划
查看执行计划
查询语句.explain()
stage属性对应的值是索引,可以根据stage的值,进行查询的优化
以_开头的字段都是系统域