mongoDB的安装与使用
来源:互联网 发布:哪些软件可以赚集分宝 编辑:程序博客网 时间:2024/05/21 09:07
介绍
mongodb是一种非关系型的数据库,它采用的BSON()的语法,轻便,简单,高效。BSON是一种类JSON的对象,以二进制的形式存储,在存储的时候采用{“name”:“jack”,“age”:20}键值对的形式。
安装
1.安装下载的.msi文件 ,注意安装在纯英文的路径上,各种next,就完成了安装。2.配置环境变量,将mongodb的安装路径的bin目录添加到系统环境变量path中。(不配置环境变量就要在mongodb的安装路径的bin文件夹下打开cmd)3.手动建立数据仓库,注意是纯英文路径4.打开cmd面板,执行mongod --dbpath "c:/data/db" --storageEngine=mmapvq5.重新打开一个cmd命令窗口,执行mongo(4步骤打开的cmd不能关闭)再次运行:1.打开cmd执行mongod2.再打开一个cmd命令窗口运行mongo; 再次运行的时候出现错误的解决方法:(执行其中的一个,情况一样执行不一样)1.mongo --repear2.mongo --dbpath "c:/data"3.mongo --auth --dbpath c:\mongo\mongoDB\mongo\data --repear4.删除仓库根目录中的mongod.lock文件
库的操作
查看所有库:show dbs创建并进入库: use ku-name删除库: db.dropDatabase() //要先进入要删除的库再删除。
集合的操作
注: 要先进入collection 再操作查看集合帮助: db.collection.help()查看集合: show collections集合重命名: db.collection.renameCollection()查看集合空间大小: db.collection.dataSize()查看集合总数据量: bd.collection.count()查看集合所在数据库:db.collection.getDB();删除集合:db.collection.drop()集合复制:db.collection.copyTo('copy-name')
数据操作(增删改查)
注:先进入collection再操作
增加数据
db.collection.insert({"name":"jack","age":18}){"name":"jack","age":18}:要增加的数据
删除数据
db.collection.remove({"name":"jack"}){"name":"jack"}:要删除数据的条件
修改数据
db.collection.update({"name":"jack"},{"age":20},{upsert:true},{multi:true}){"name":"jack"}:更新的条件{"age":20}: 要更新的内容{upsert:true}:如果不存在该数据,是否选择插入该数据。{multi:true} : 匹配多个 false时只匹配查找到的第一个上面方法的弊端: 会用要更新的内容替换更新条件所在的数据。$inc : 增加数字类型值的value db.collection.update({name:"jack"},{$inc:{age:10}}) // jack所在数据的age增加10$set: 设置key的value db.collection.update({name:"jack"},{$set:{name:"lisi"}}) //将jack所在数据的name改为lisi,元数据中没有的key,可增加key:value$unset : 删除属性 db.collection.update({name:"jack"},{$unset:{age: 18}},{multi:true}) //将所有jack所在数据的age属性删除$push: 往 数组中添加一个值 db.collection.update({name:"jack"},{$push:{hobby:"lanqiu"}}) //往hobby的value(数组)中添加lanqiu。$pushAll:往数组中添加多个值 db.collection.update({name:"jack"},{$pushAll:{hobby:[lanqiu,zuqiu]}}) //往hobby的value(数组)中添加lanqiu、zuqiu$addToSet:增加一个值到数组内,只有当这个值不在数组内才增加 db.collection.update({name:"jack"},{$addToSet:{hobby:{$each:[lanqiu,zuqiu]}}})$pop:删除数组内的一个值 db.collection.update({name:"jack"},{$pop:{hobby:1}}) //从hobby数组的末尾删除 db.collection.update({name:"jack"},{$pop:{hobby:-1}}) //从hobby数组的开头删除$pull:从数组内删除一个等于value的值 db.collection.update({name:"jack"},{$pull:{hobby:"lanqiu"}}) //删除jack数据hobby属性值中的lanqiu$pullAll:从数组删除多个值 db.collection.update({name:"jack"},{$pullAll:{hobby:['lanqiu','zuqiu']}}) //删除jack数据hobby属性值中的lanqiu、zuqiu
查询数据
db.collection.find() //查找集合内所有的数据db.collection.find({'age':18}) //查找集合内所有age为18的数据db.collection.find({"age":{$gt:18}}) //查找集合内所有age大于18的数据db.collection.find({"age":{$lt:18}}) //查找集合内所有age小于18的数据db.collection.find({"age":{$gte:18}}) //查找集合内所有age大于等于18的数据db.collection.find({"age":{$lte:18}}) //查找集合内所有age小于等于18的数据db.collection.find({"age":{$gt:18,$lte:30}}) //查找集合内所有age大于18小于30的数据db.collection.find({"age":{$ne:30}}) //查找集合内所有age不等于30的数据db.collection.find({'age':{$mod:[10,1]}}) //取模运算,查找集合内所有age%10 =1 的数据db.collection.find({"age":{$nin:[1,2,3]}}) //查找集合内所有age不属于[1,2,3]中的任何一个db.collection.find({"age":{$in:[1,2,3]}}) //查找集合内所有age属于[1,2,3]中的任何一个db.collection.find({"hobby":{$size:1}}) //查找集合内所有hobby的值为1个的数据db.collection.find({"age":{$exists:true|false}}) //true 存在字段age,返回有age的数据, //false 不存在字段age,返回没有age的数据db.collection.find({"key":/^val.*val$/i}) //查找集合内key的值符合正则表达式的数据db.collection.find({$or:[{a:1},{b:2}]}) //查找集合内符合a=1或b=2的数据db.collection.find("age":18,$or:[{a:1},{b:2}]) //查找集合内age=18,并且a=1或b=2的数据db.collection.find({"key":{$not:/^val.*val$/i}}) //查找集合内key的值不符合正则表达式的数据 $not: 以上查找,如果加上$not就会获得相反的结果db.collection.find().sort({"key1":-1,"key2":1}) //将集合内的所有数据排序,1为升序,-1为降序db.collection.find().limit(10),skip(10) //分页 limit查询多少条 skip从第几条开始查
索引
索引的目的是为了提高查询的效率,但是索引也不是越多越好,有两面性。索引会影响插入数据的效率创建索引:(1代表升序 -1代表降序)db.collection.ensureIndex({"name":1,"des":-1})设置为唯一索引:db.collection.ensureIndex({"name":1},{unique:true})删除所有索引:db.collection.dropIndexes()删除指定的索引:db.collection.dropIndex({"name":1})
聚合
$sum:求和 db.collection.aggregate([{$group:{_id:"$字段",sumKey:{$sum:1}}}]) //$sum:1 相当于单位$avg:平均值 db.collection.aggregate([{$group:{_id:"$sex",avg:{$avg:"$age"}}}])$min:获取集合中所有文档对应值的最小值 db.collection.aggregate([{$group:{_id:"$sex",min:{$min:"$age"}}}])$max:获取集合中所有文档对应值的最大值 db.collection.aggregate([{$group:{_id:"$sex",max:{$max:"$age"}}}])
数据备份
数据备份: mongodump -d dbname -o c:/data dbname: 要备份的数据库的名称 c:/data:备份的数据库要放的地址数据恢复:mongorestore -d dbname c:data/test dbname:恢复数据库新建的名称 c:data/test:要恢复数据库的地址
阅读全文
0 0
- MongoDb的安装与使用
- mongodb的安装与使用
- mongoDB的安装与使用
- Mongodb 安装与使用
- Mongodb 安装与使用
- mongoDB安装与使用
- MongoDB安装与使用
- MongoDB安装与使用
- mongodb安装与使用
- mongodb安装与使用
- mongodb安装与使用
- MongoDB安装与使用
- MongoDB安装与使用
- 关于MongoDB的安装与使用
- MongoDB的安装与基本使用
- MongoDB的安装与基本使用
- MongoDB数据库的安装与使用
- mongodb的windows安装与使用
- JS中预解释(变量提升)
- 学习笔记第一天
- 设计模式---- 单例模式 工厂模式 构造函数模式 原型模式 混合模式
- node中异步变同步
- SharedPreferences去保存登录的密码和状态
- mongoDB的安装与使用
- nodejs中路径问题
- Python BeautifulSoup模块
- node.js的POST
- js数组去重
- 使用git上传项目至github
- oracle索引的事
- node.js 将json字符串转为json对象的方法
- JS——求某年某月某天是多少天