mongodb安装及操作
一、mongodb安装:
以安装到D:\MongoDB为例:
1.在D盘新建data文件夹,在data文件夹下新建db文件夹;
2.启动mongodb服务:打开MongoDB文件夹下的bin文件夹,在D:\MongoDB\bin下打开cmd命令窗口,输入命令:mongod --dbpath d:\data\db
3.配置环境变量:打开MongoDB文件夹下的bin文件夹,复制路径----右键单击“计算机”----属性----高级系统设置----高级----环境变量----找到path双击----光标定到最后,输入;(英文状态下的分号)+路径;
4.记录mongodb:重新打开cmd,输入:mongod --dbpath d:\data\db;
5.操作mongodb:重新打开cmd,输入:mongo;
注:记录mongodb窗口不能关闭
二.mongodb的常用命令:
1.help 查看命令提示
help
db.help
db.test.help()
db.test.find().help()
2.创建切换数据库
use+数据库名 如果数据库中没有表,数据库是不会显示的
如果存在,则切换,不存在,则创建
3.创建表
db.createCollection('表的名称')
4.查看表
db.getCollectionNames() 查询数据库中的所有表 返回值是一个数组
db.getCollection('表的名称') 使用某张表
5.db.表名.save({key:‘val’,key:‘val’}) 增
6.db.表名.find() 查询所有【kinoko是表名】 查
db.kinoko.find({'age':12}) 查询年龄为12的记录
db.kinoko.find({age:{$gt:12}}) 查询age>12的记录
db.kinoko.find({age:{$lt:12}}) 查询age<12的记录
db.kinoko.find({age:{$gte:12}}) 查询age>=12的记录
db.kinoko.find({age:{$lte:12}}) 查询age<=12的记录
db.kinoko.find({age:{$gte:12,$lte:34}}) 查询age>=12并且age<=34的记录
模糊查询
db.kinoko.find({name:/rose/}) 查询name中包含rose的数据
db.kinoko.find({name:/^rose/}) 查询name中以rose开头的
db.kinoko.find({name:/rose$/}) 查询name中以rose结尾的
db.kinoko.find({}【所有记录】,{name:1,age:1}【只查找name,age】) 查询所有的name,age
db.kinoko.find({age:{$gt:12}},{name:1,age:0}) 查询age>12的所有列的name数据
1是显示,0是隐藏
db.kinoko.find().sort({age:1}) 按照年龄排序---生序
db.kinoko.find().sort({age:-1}) 按照年龄排序---降序
db.kinoko.find().limit(5) 查询前5条数据
db.kinoko.find().skip(2) 查询2条后的记录
db.kinoko.find().limit(5).skip(2) 查询前2-5之间的数据
分页逻辑:
特点:每页显示多少条数据是固定的;
页码数=总数量/每页显示的条数 总数量--count count/limit
当前页码 page
比如:总数量:100
一页显示十条;
第一页------0-9
第二页------10-19
第三页------20-29
第四页------30-39
第五页------40-49
第六页------50-59
第七页------60-69
第八页------70-79
第九页------80-89
第十页------90-99
遍历:for(var i = (page-1)*limit; i < Math.min(page*limit,count);i++){
}
db.kinoko.findOne() 查询第一条数据
db.kinoko.find({sex:{$exists:true}}).count() 按照某列进行排序
db.kinoko.find({$or:[{age:22},{age:25}]}) or与查询
db.kinoko.find({age:{$gte:25}}).count() 查找某个结果集的记录条数
7.db.表名.update({key:'val'【要修改的数据】,$set:{key:'val'}【修改的数据】}) 改
db.kinoko.update({name:'rose'},{$inc:{age:30}},false,true) 将name为rose的年龄在原来的基础上增加30
db.kinoko.update({name:'rose'},{$inc:{age:30},$set:{name:'大美'}},false,true)
FALSE表示新增不新增,TRUE表示一条或多条
$set 与 $inc 不能修改同一个字段
将name为rose的年龄在原来的基础上加30,并将name改为“大美”
8.db.表名.remove({key:'val'}) 删
9. db.kinoko.distinct('key') 查询去重后数组
10.show dbs 查看服务器中有多少个数据库
11.db 如何查看当前使用的哪个数据库
三,在JS中操作mongodb:
局部安装mongodb
//引入mongodb模块: const MongoClient = require('mongodb').MongoClient; //定义服务器地址: let url = "mongodb://127.0.0.1:27017"; //连接数据库: let db_name = 'kinoko'; MongoClient.connect(url,(err,client)=>{ if(err){ console.log('连接失败') }else{ console.log('连接成功') } //连接数据库 连接表: const collection = client.db(db_name).collection('agu'); //增: // collection.save({ // name:'伊洛', // age:22 // }) // collection.save({ // name:'卡尔', // age:23 // }) // collection.save({ // name:'柏溪', // age:24 // }) //删: // collection.remove({ // name:'卡尔' // }) //改 // collection.update({name:'伊洛'},{$set:{name:'倾城'}}) //只能改一条 //查: //console.log(collection.find().toArray()); //输出:Promise{<pending>} // collection.find().toArray().then((data)=>{ // console.log(data); // }) })