一、mongodb安装:



以安装到D:\MongoDB为例:



 



1.在D盘新建data文件夹,在data文件夹下新建db文件夹;



启动mongodb服务:打开 MongoDB文件夹下的bin文件夹,在 D:\MongoDB\bin下打开cmd命令窗口,输入命令: mongod --dbpath d:\data\db



3.配置环境变量:



记录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('表的名称')   使用某张表

 





 




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结尾的

 



【所有记录】 ,{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()   查找某个结果集的记录条数



要修改的数据 】 ,

$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改为“大美”



 





 



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);
    // })

})