mongodb的常用基础命令及操作
连接查看数据库
打开cmd窗口,输入mongo进入客户端模式
基础命令
> monodb // 进入客户端模式
> show dbs // 查看所有数据库 > show collections // 查看所有集合 > use test //use <数据库名> 进入test数据 如果没有则会创建,如果有直接进入,如果没有往数据库内插入文档,则不会存在该数据库
插入文档
// 添加数据 db.test.insert({name:'aaa',age:18,sex:'man'}) //向当前数据库的test集合插入文档,插入文档内容为 {name:'aaa',age:18,sex:'man'},其中db表示进入数据库时的当前数据库
db.test.insert([{name:''张楚岚,age:18,sex:'man'},{name:'王也',age:25,'sex':'man','job':'道长',desr:'当不好就要回去继承家产的道长'}]) //向test中插入多条数据
常见查询语句
// 查询
db.test.find() // 查找当前数据库的test集合的所有文档
db.test.find({name:'aaa'}) // 条件查询
db.test.findOne({name:'aaa'}) //返回满足条件的第一条数据
db.test.findMany({name:'aaa'}) //返回满足条件的所有数据
db.test.find({age:{$gt:18,$lt:25}}) //返回age大于18小于25的数据 (其中关键字还有大于等于$gte,小于$lt,小于等于$lte,包含$all等)
db.test.find({$or:[{age:{$lt:18}},{age:{$gt:25}}]}) //返回大于25或者小于18的数据 $or:[{条件一},{条件二}]
db.test.find({}).start(0).limit(10) //返回满足条件的第0条到第10条的数据集合 其中等同 db.test.find({}).limit(10).start(0) 因此分页功能可以通过改变start和limit的值实现
db.test.find().skip(10).limit(10) //跳过10条 后的文档获取10条,及第11到20个文档
db.test.find({},{age:1,name:-1}) // 只返回对应字段的数据,其中_id,是默认显示的,这里的1,-1表示对应字段的显示隐藏,1为显示,-1为隐藏
db.test.find(),sort({age:1,name:0}) //排序规则,age为升序,姓名为降序,优先对age进行排序 1为升序,0为降序,越靠前优先级越高
修改语句
//修改数据 db.test.update({name:'aaa'},{sex:'woman'}) // 替换姓名为aaa的数据为sex:‘woman’ 此时,满足该条件的第一条数据被完全替换 {name:'aaa',sex:'man'} ==> {sex:'woman'} db.test.update({name:'aaa'},{$set:{sex:'woman'}}) // 查找姓名为aaa的数据,并将里面的sex属性的值更改为woman {name:'aaa',sex:'man'} ==> {name:'aaa',sex:'woman'} db.test.update({name:'aaa'},{$unset:{sex:'woman'}}) // 查找姓名为aaa的数据,并将里面的sex属性删除,这里的woman值无论填什么都无所谓 db.test.update({name:'aaa'},{$set:{hobby:{sports:['running','flying'],views:['jiuzaigou','emeishan']}}}) // 像aaa姓名的文档添加了一个hobby:{sports:['running','flying'],views:['jiuzaigou','emeishan'] db.test.find({"hobby.sports":'running'}) // 查找hobby的sports是running的数据 db.test.update({name:'aaa'},{$push:{"hobby.sports":"swimming"}}) //向hobby的sports添加了一个值swimming,{“name”:'aaa',sex:'woman',hobby:{"sports":['running','flying','swimming'],views:['jiuzaigou','emeishan']}} 其中push不会管之前是否有该属性值,会不停的往里面添加 db.test.update({name:'aaa',{$addToSet:{"hobby.sports":"swimming"}}}) // 如果没有则会添加,有就不会添加 db.test.update({name:'aaa'},{$pop:{"hobby.sports":'flying'}}) //删除hobby的sports的flying值
删除语句
db.test.remove({name:'冯宝宝'}) //删除姓名为冯宝宝的文档
db.test.deleteMany({}) //删除该集合下面的所有文档 {}:相当于没有写任何删除条件
db.test.deleteOne({'age':18]) //删除满足条件的第一个文档
一般不建议大家删除数据,毕竟数据还是很不容易恢复的
播客主页:https://www.cnblogs.com/epines/