前言
一、MongoDB将数据存储为一个文档,数据结构由键值(key=>value)对组成
二、三元素:数据库,集合(相当于数据库中的表),文档(就是表中的单条数据)组成
三、BJSON是Mongodb的数据存储格式(选择json的目的是为了通用性)
BJSON介绍
1.json的不足:数据存储没有类型,只有字符,在json中要跳过一个文档进行数据读取,需要对此文档进行扫描,还要进行数据结构匹配。
2.改进:BJSON是可以指定数据类型的,BJSON会将每一个元素的长度存在元素的头部,这样读取到元素的长度就可以到指定的元素里面去进行获取了。
一句话:Bjson操作更简易了,更快的遍历速度,提高效率!
1.增
db.表名.insert({键:值}) 传单个对象,也可以用于传集合使用 []符号,进行包裹即可(代码仅做格式参考)
db.user.insert([{ "_id" : NumberInt(16), "study" : true, "type" : "site", "username" : "sushaomeng", "email" : "777@qq.com", "password" : "c04b6e3a4b3621f2ba84503fb918975b80294c80", "passsalt" : "k9qzdaicc7d", "role" : "admin", "add_time" : NumberInt(1575987272), "up_time" : NumberInt(1575990047), "__v" : NumberInt(0) },{ "_id" : NumberInt(17), "study" : true, "type" : "site", "username" : "shiyuanqing", "email" : "6222@qq.com", "password" : "c04b6e3a4b3621f2ba84503fb918975b80294c80", "passsalt" : "k9qzdaicc7d", "role" : "admin", "add_time" : NumberInt(1575987272), "up_time" : NumberInt(1575990047), "__v" : NumberInt(0) }])
2.删
1.db.dropDatabase() //删除当前的数据库 2.db.表名.drop() // 删除表的集合 3.db.表名.remove({"键":值}) //将当前表 键值对应的文档数据,进行删除 4..db.表名.remove({"age":100,{junstOne:true}}) //删除最前面一条age:100的数据
3.改
1. db.表名.update({"键1":“值1”},{$set:{"键1":"值2"}}) //把条件为键1的值改为键1为值2的值,此方法只能修改最上面的一条数据 2. db.表名.update({"键1":“值1”},{$set:{"键1":"值2"}},{multi:true}) //加{multi:true}后,那么修改的就是所有的满足该条件的
4.查
1.db.表名.find() //查询出表的所有数据 2.db.students.find({"键":值})//通过条件查询(精准匹配,不是模糊查询) 3.db.students.find({"键1":值,"键2":"值"})//多选项匹配(精准匹配,不是模糊查询) 4.db.students.find({"键1":{$gt:值}})//$gt大于符号验证字符串则按长度判断(例如是:"su",则会匹配"su1","su2",像这样三位字符的,只有"su",则不会匹配,如果是数字直接进行比较即可) 5. //$lt 小于符号,$or 两个或两个以上条件只要满足其中之一即可 6.db.students.find.sort({"键1":-1,"键2":1})//排序,按照键1降序排如果键1相同,按照键2升序排 。-1代表降序、1代表升序
5.总结
这些都是Mongodb基本的的语法,让大家能够在这里简单了解mongodb操作数据的语法,希望能够帮助到热爱编程的朋友,有不足之处,还望指出!