• 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/

    作者:epines
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须在文章页面给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    JSON操作技巧
    我的前端学习历程(转)
    sql指南网址
    using 和try/catch区别和注意点
    【转】StringBuffer的用法与string的区别
    【转】比较page、request、session、application的使用范围
    【转】StringBuilder用法
    【转】.Net高级技术——IDisposable
    【转】.NET快速查找某个类所在的命名空间
    【转】VS2010安装包制作
  • 原文地址:https://www.cnblogs.com/epines/p/13356503.html
Copyright © 2020-2023  润新知