mongodb安装及操作

一、mongodb安装:

以安装到D:MongoDB为例:
 
1.在D盘新建data文件夹,在data文件夹下新建db文件夹;
2.启动mongodb服务:打开MongoDB文件夹下的bin文件夹,在D:MongoDBin下打开cmd命令窗口,输入命令:mongod --dbpath d:datadb
3.配置环境变量:打开MongoDB文件夹下的bin文件夹,复制路径----右键单击“计算机”----属性----高级系统设置----高级----环境变量----找到path双击----光标定到最后,输入;(英文状态下的分号)+路径;
4.记录mongodb:重新打开cmd,输入:mongod --dbpath d:datadb;
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);
    // })

})
原文地址:https://www.cnblogs.com/kinoko-1009/p/10497951.html