mongoDB

  1. 数据库,nosql(非关系型)
  2. 场景
    解决大规模数据集合多重数据种类
  3. 新建data/db文件夹
    在c盘下新建data文件夹,再在data文件夹中新建db文件夹
  4. 在下面文件夹中启动命令行
    C:\Program Files\MongoDB\Server\3.4\bin
  5. 指定数据存储目录(每次都需要指定)
    命令行输入 mongod --dbpath c:\data\db
  6. 开启服务
    命令行输入mongod
  7. 配置环境变量,使mongod可以在任何地方运行
  8. 开启客户端
    命令行输入 mongo
    注意:此命令行必须另外开启一个,mongod命令行是一直开启的(为了保障mongoDB服务开启)

mongoDB

  1. msyql和mongoDB区分
mysql mongoDb
database(库) database(库)
table(表) collection(集合)
row(一条数据) document(文档)
column(字段) field(区域)
用mysql中间件 用mongodb中间件
返回数组 返回对象,需要toArr
  1. 存储方式:
    mysql 二维表
    MongoDB json

  2. 库操作:


    • show dbs
    • 查看当前库
      db

    • use 库名 //没有建,有就切换

    • db.dropDatabase() 删除当前库
  3. 集合(表)操作:

    • db.createCollection('表名',{配置})
      配置:{size:文件大小,capped:true,max:条数|文档数} capped定量
      

    • show collections / db.getCollectionNames()

    • db.表|集合.drop()
  4. 文档(row)操作:
    • 增:
      db.集合.save({}) / db.集合.insert({})  添加一条
      db.集合.save([{},{}]) / db.集合.insert([{},{}])
      insert  不会替换相同ID    save会
      
    • 删:
      db.集合.deleteOne({}) db.集合.remove({},true)  一条
      db.集合.remove({要删数据描述}) 多条
      db.集合.remove({}) 清空表
      
    • 改:
      db.集合.udpate({要替换的数据},{替换后的},bl插入,bl替换)
      替换后的:
          {\$set:{数据},$inc:{age:1}}
      
    • 查:
      所有:db.集合.find(条件)
      条数: db.集合.find().count()
      去重:db.集合.distinct(key)
      
      • 条件
        {age:22}        age == 22
        {age:{\$gt:22}}    age > 22
        {age:{\$lt:22}}    age < 22
        {age:{\$gte:22}}    age>=22
        {age:{\$lte:22}}    age<=22
        {age:[{\$lte:122},\{\$gte:22}]}age<=122 && age>=22
        {$or:[{age:22},{age:122}]}    22 or 122
        
      • 限定 (只显示number条)
        db.集合.find().limit(number)
      • 跳过
        db.集合.find().skip(number)
      • 查一条
        db.集合.findOne()/db.集合.find.limit(1)
      • 排序
        db.集合.find().sort({key:1/-1}) //1升序,-1降序
      • db.集合.find({条件},{指定要显示列区域})
        指定要显示列区域: 区域名username:1 显示着个区域,其他不显示
        指定要显示列区域: 区域名username:0 不显示着个区域,其他显示
        _id 是默认显示
        
      • 实例
        db.集合.find({条件},{指定显示区域}).skip(10).limit(10).sort({key:1})

nodejs + mongodb中间件

  1. require(‘mongodb’); 引入模块
  2. 创建客户端 mongoCt = mongodb.MongoClient
  3. 链接库 mongoCt.connect(‘协议://地址:端口/库名’,回调(err,db))
  4. 链接集合(表) user = db.collection(‘集合名’);
  5. user.API() 表操作 返回 对象
    user.API().toArray((err,result)=>{reulst==arr})
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    let mongodb = require('mongodb');
    let mongoCt = mongodb.MongoClient;//创建客户端
    mongonCt.connect('mongodb://127.0.0.1:27017/库名'),(err,db)=>{
    true//链接集合
    truelet user = db.collection('user');
    true//集合操作
    trueuser.insertOne({},(err,result)=>{
    truetrueif(err){
    truetruetruethrow new Error();
    truetrue}else{
    truetruetrue...
    truetruetruedb.close();//关闭库
    truetrue}
    true});
    }
文章目录
  1. 1. mongoDB
  2. 2. nodejs + mongodb中间件
|