快速上手MongoDB数据库

MongoDB数据库学习总结

十二月 16, 2018

  • 分布式 & 基于文件存储 & 存储空间大 & 适用于频繁读写 & 不支持事务操作。

  • 查看当前都有哪些数据库 : show dbs

  • use xiaoliu

    • 如果有xiaoliu这个数据库就进入,如果没有就创建这个数据库并进入这个数据库,如果xiaoliu这个数据库是空的,则show dbs还是看不到xiaoliu这个数据库
  • 查看当前所在数据库 : db

  • 显示当前所在数据库中的所有集合 : show collections

  • 在当前数据库中新建一个user集合,并插入一条数据 : db.user.insert({ ‘name’ : ’liupeijie’ })

  • 列出user集合中的所有数据 : db.user.find()

  • 查询user集合中的第一条数据 : db.user.findOne()

  • 删除user集合中name为zhangsan的数据(有几条删几条) : db.user.remove({ ‘name’ : ’zhangsan’ })

  • 清空user集合中的所有数据 : db.user.drop()

    扫描二维码关注公众号,回复: 10245215 查看本文章
  • 删除当前所在数据库 : db.dropDatabase()

  • 可执行js写的mongodb脚本文件 : load( ‘脚本文件地址‘ )

  • 插入多条数据 : db.user.insert([,,,])

  • 更新数据 : db.user.update({ 更新的条件 }, { 更新的内容 })

  • 只修改一条数据中的一个指定字段而不影响其他字段 : db.user.update( { ‘name’: ’liupeijie’ }, { $set{ ‘age’ : 18 } } )

  • 只删除一条数据中一个指定字段而不影响其他字段 : db.user.update( { name: ’liupeijie’ }, { $unset: { hobby: ‘’ } } )```

  • upsert设置为true时,有这条记录就修改,没有这条记录就新增 : db.user.update({name:’liupeijie’},{$set:{age:20}},{upsert:true})

  • 查询到所有的数据进行修改,第三个参数指定每一条数据都做制定的更新操作,如果不写multi:true,那么只会给第一条数据更新 : db.user.update({},{$set:{hobby:[]}},{multi:true})

  • $push的作用是给选中的数据增添一条字段, 这种push方式允许值重复, KaTeX parse error: Expected '}', got 'EOF' at end of input: …e({name:’小李’},{push:{hobby:’吃鸡’}})```

    	var hobbys = [‘吃鸡’,’叫醒’,’学习’];
    
  • db.user.update({name:’liupeijie’},{$addToSet:{hobby:{$each:hobbys}}});// $each作用是推送数组的每一条

  • db.user.update({name:’liupeijie’},{$set:{‘hobby.0’:’健身’}});// ‘hobby.0’是对数组第一个值的操作,以此类推

  • db.user.find({age:{$gte:20,$lte:25}});// g t e > gte->大于等于, lte->小于等于

  • db.user.find({age:{$gte:20,$lte:25}},{name:true,age:true,_id:false});// find()的第二个参数指定字段显不显示

  • db.user.find({age:{$in:[20,25]}},{name:true,age:true,_id:false});// $in的作用不言而喻哈哈

  • db.user.find({$or:[{age:{$gte:30}},{‘pc.brand’:’IBM’}]},{name:true,age:true,_id:false});// o r , or指满足任意条件即可, and必须同时满足,$not不满足

  • db.user.find({ hobby: ‘敲代码’ }, { name: true, age: true, _id: false });// 注意和hobby:[‘敲代码’]的区别

  • db.user.find{hobby:{$all:[‘篮球’,’敲代码’]}};// $all指爱好里面篮球和敲代码都得满足

  • db.user.find{hobby:{$in:[‘篮球’,’敲代码’]}};// $in指爱好里面篮球和敲代码满足其一即可

  • db.user.find{hobby:{$size:3}};// {$size:3}指有三个爱好即可(爱好的数组大小是3)

  • db.user.find({},{name:true,age:true,_id:false}).limit(1).skip(0).sort({age:-1});// 查找当前集合的所有数据按照指定格式输出,限制输出一条,跳过0条,按照年龄倒序排列

  • 查询的数据量较大时( 百万级以上的数据量 ),可通过建索引的方式提高查询速度( 空间换时间 )

    • db.collections.ensureIndex({username:1});

    • db.collections.getIndexes();// 获取当前的索引

    • db.collections.dropIndex({});

发布了64 篇原创文章 · 获赞 29 · 访问量 2342

猜你喜欢

转载自blog.csdn.net/Brannua/article/details/105144788