MongoDB

作者: 幸之石 | 来源:发表于2020-07-14 08:15 被阅读0次

    MongoDB/Robo3T安装

    1、MongoDB安装

    • MongoDB安装
      下载.msi文件
      安装时,取消勾选“MongoDB Compass”,它是MongoDB官方的图形化工具,无须安装。
    • 配置环境变量
      系统设置->环境变量->添加PATH:D:\mongo\bin
    • 启动mongodb服务
      mongod --dbpath "D:\mongo\data"
    • 使用 mongo shell 连接mongodb服务
      连接服务:mongo
      查看数据库列表:show dbs;

    2、Robo3T安装

    • Robo3T
    • 使用步骤如下:
      官网下载 robo3t-1.3.1-windows-x86_64-7419c406.exe
      点击安装
      填写相关信息,启动 Robo3T
      GitBash启动 MongoDB服务
      在Robo3T中创建连接、完成
    • 使用Robo3T
      • 连接本地MongoDB服务
      • 查看集合,切换三种显示方式——json视图、表格视图、对象视图
      • 使用Robo3T Shell:输入mongo shell命令,点击“执行”按钮

    MongoDB 数据库

    1、MongoDB vs. MySQL 及其概念讲解

    MongoDB是一个基于分布式文件存储的数据库,由C++编写,旨在为WEB应用提供可扩展的高性能数据存储解决方案。

    特点:高性能、易部署、易使用、存储数据非常方便。

    2、MongoDB vs. MySQL

    SQL术语/概念 MongoDB术语/概 解释/说明
    database database 数据库
    table collection 数据库表/集合
    row document 数据记录行/文档
    column field 数据字段/域
    index index 索引
    primary key primary key 主键,MongoDB自动将_id字段设置为主键

    3、MongoDB的数据类型

    • String
    • Integer
    • Boolean
    • Double
    • Min/Max keys
    • Array
    • Timestamp
    • Object
    • Null
    • Symbol
    • Date
    • Object ID
    • Binary Data
    • Code
    • Regular expression

    4、使用 mongo shell,常用命令

    1、帮助命令
        help
        db.help()
    
    2、数据库操作命令
        show dbs
        use dbname  切换数据库
        db / db.getName()  查看当前数据库名称
        db.stats()  显示当前DB的状态
        db.version()  查看当前DB的版本
        db.getMongo()  查看当前DB的连接的主机地址
        db.dropDatabase()  删除当前DB
    
    3、创建数据库和集合
        use project  不存在就创建,存在就切换至
        db.createCollection('user')  // 创建user集合
        show dbs
        show collections / db.getCollectionNames()
        db.getCollection('music')  获取指定集合
        db.printCollectionStats()  打印指定集合的状态
    
    4、集合中的文档操作:
        db.user.insertOne({})  向集合中插入文档
        db.user.insertMany([{},{}])
        db.user.save({})
    
        db.user.updateOne({"name":"cyr"}, {$set:{"age":100}})
        db.user.updateMany({},{$set:{}})
    
        db.user.deleteOne({"name":"jiaming"})
        db.user.deleteMany({})
        db.user.remove({})   // 要指出删除的条件
    
    6、聚集集合查询
        db.user.find()     查询所有记录
        db.user.find({age:22})     查询age=22的记录
        db.user.find({age:{$gt: 22}})   查询age>22的记录
        db.user.find({age:{$lt: 22}})   查询age<22的记录
        db.user.find({age:{$gte: 22}})   查询age>=22的记录
        db.user.find({age:{$lte: 22}})   查询age<=22的记录
        db.user.find({age:{$gte:20, $lte:30}})  查询age>=20 && age<=30的记录
        db.user.find({name:/cyr/})  查询name中包含'cyr'的记录
        db.user.find({name:/^cyr/})  查询name以'cyr'开头的记录
        db.user.find({},{name:1,age:1})  查询所有记录,只返回name和age字段(1-显示 0-不显示)
        db.user.find({age:{$gt:20}},{name:1,age:1})  查询age>20的记录,只返回name和age字段
        db.user.find().sort({age:1})  按age进行升序排列
        db.user.find().sort({age:-1})  按age进行降序排列
        db.user.find({},{name:1,age:1,_id:0}).sort({age:1})
        db.user.find({name:'cyr',age:22})  查询name='cyr' && age=22的记录
        db.user.find().limit(5)  只查询前5条记录
        db.user.find().skip(10)  查询10条以后的所有数据
        db.user.find().skip(5).limit(5)  查询第6~10条记录
        db.user.find({$or:[{age:20},{age:25}]})  查询age=20或者age=25的记录
        db.user.findOne()  查询满足条件的第一条记录
        db.user.find({age:{$gte:25}}).count()  查询满足条件的记录的总条数
    
    7、实战mongo shell
        构造一批假数据,使用insertMany()入库
        然后就可以使用上述命令进行实战练习了
    

    Node.js连接

    安装mongodb的模块:
    npm install mongoose

    1.连接数据库

    var mongoose = require('mongoose');
    mongoose.connect('mongodb://localhost/test');
    var db = mongoose.connection;
    db.on('error', function(){
       console.log('数据库连接错误')
    }));
    db.once('open', function() {
       console.log('数据库连接成功')
    });
    

    2.创建数据表

    var mongoose = require('mongoose')
    var articleSchema = mongoose.Schema({
      title: String,
      content: String,
      createTime: Number,
      username: String
    })
    var articleModel = mongoose.model('articles', articleSchema);
    

    3.插入数据

    var arr = [{ name: 'Star Wars' }, { name: 'The Empire Strikes Back' }];
    Movies.insertMany(arr).then(data=>{
    
    }).catch(err=>{
    
    });
    

    4.查询数据

    userModel.find({}).then(data=>{
    
    }).catch(err=>{
    
    });
    
    

    5.更新数据

       articleModel.updateOne({}, {}).then(data=>{
         
       }).catch(err=>{
         
       })
    

    6.删除数据

    articleModel.deleteOne({}).then((data)=>{
    
     }).catch(err=>{
    
     })
    

    相关文章

      网友评论

          本文标题:MongoDB

          本文链接:https://www.haomeiwen.com/subject/mazthktx.html