zoukankan      html  css  js  c++  java
  • 安装mongodb遇到的一些问题 以及一些指令 及 插件运用方式

    安装  注意事项
    在`Mongodb`官网下载最新版本的[Mongodb下载地址](https://cloud.mongodb.com/)
     
    下载`msi`的`window`安装包,可以装到C盘或者D盘目录下
     
    > 由于我是安装在D盘的环境下
    >
    > ```shell
    > D:Program Files (x86)MongoDBServer3.2in
    > ```
    >
    > 所以在bin文件夹下找到mongod.exe命令,然后通过管理员执行`mongod --dbpath x路径x`,路径可以是任何地方,我这里选择在D盘的MongoDB目录下,当然路径不要包含特殊的字符串,比如`Program Files (x86)`也不行
    >
    > ```shell
    > mongod --dbpath D:mongodbdatadb
    > ```
    >
    > ![image](https://user-images.githubusercontent.com/17243165/31977540-fc0a5a6e-b96f-11e7-9a2b-34d66d7241c4.png)
     
    默认安装c盘  安装时不要勾选 install compass  否则可能会持续在安装中 
    安装完成运行指令 mongod  则复制c盘 Program Files/mongodb/bin文件  复制目录 将其配置到系统环境变量中即可
     
     
    数据库
    -------启动数据库 开启指令:mongod  (如果自启动 就无需执行该指令)
    -------连接数据库:mongo
    -------无问题就查看数据库:show dbs
     
     
    -------创建数据库:use dbname  
    use有两个功能
    1、新建数据库 没有该数据库  use表示新建
    2、切换数据库 有该数据库  use表示切换到该数据库  新建的数据库为空是一个临时的库
     
    ------删除数据库: db.dropDatabase()
    删除前一定要切换到需要删除的库  use 1823 --db.dropDatabase()
     
    ------查数据库:show dbs 查询所有的数据库
                              db 查询当前使用的db
     
    集合 (即数据库里的表)不要以数字命名集合
    -------增加集合:db.createCollection('users') users即集合的名字
     
    ------删除集合:db.name.drop()  需要切换到当前集合 然后执行该指令
     
    ------查找集合 show collectoins()
     
    文档(即表格中的数据内容)
    -------增加数据:db.collecionName.insert({obj})
     
    -------删除数据:db.collecionName.remove({条件}) 是一个空对象时 表示全部删除
     
    -------修改数据:db.collectionName.updata(查询条件,修改($set),修改全部)
     
    -------查找数据:db.collectionName.find(查询条件)
           db.collectionName.find().pretty() 将查询后的结果进行格式化
           db.collecitonName.save()//有该条数据表示修改  没有该条数据表示新插入 根据_id 判断是否存在
     
     
    分页
    db.user.find().skip(0).limit(2) 1-2 1页
    db.user.find().skip(2).limit(2) 3-4 2页
    db.user.find().skip(4).limit(2) 5-6 3页
    公式:db.user.find().skip((page-1)*pageSize).limit(pageSize)
    固值查找
    db.user.find({name:'李四',age:30})
    范值查找
    db.user.find({age:{$ite:30}}) 查找年龄小于等于30   大于等于详看官方文档
    且或 $and $or
    db.user.find({$and:[{name:李四},{age:39}]})
    db.user.find().skip(2)跳过2条数据
    db.user.find().limit(3) 截取3条数据
    db.user.find().skip().limit()跳过数据再截取数据
    db.user.find().sort({age:18}:1) 排序  1升序  -1降序
     
     
    通过node的mongoose 插件操作数据库 (mongodb也是操作数据库的插件)
    mongoose 插件有封装好的promise 可以直接使用then方法等
    1. 下载mongoose npm 
    2. 连接数据库
    3. 创建schema对象
    4. 将schema转化为数据模型
    5. 通过数据模型执行查询操作
     
    var mongoose = require('mongoose');
    // 此插件内部已有封装好的promis对象 可以使用.then方法
    mongoose.connect('mongodb://localhost:27017/1823');//默认占用端口27017 于数据库1823进行连接
    var db = mongoose.connection;// 获取连接对象进行监听
    db.on('error',(err)=>{
    console.log('连接错误')
     
    });
    db.on('open', function() {
    console.log('连接ok')
    });
     
    // 创建schema 对象 理解成一个表头
    var UserSchema = new mongoose.Schema({
    name: String,
    age :Number,
    pass: String,
    });
     
    // 4. 将schema转化为数据模型
    let user = mongoose.model('logs', UserSchema); //参数1 是集合的名字 与数据模型关联的schema对象
    // 注意注意:参数1数据库里数据表的名字一定是复数形式 如果不是复数会默认变成复数格式 这样就插不到原来的log表里了 而是在logs里
     
    // 5.进行数据库的操作
    //插入数据
    user.insertMany([{name:"张三",age:18,pass:123},{name:"李四",age:18,pass:345},{name:"王五",age:18,pass:434}])
    .then((data)=>{
    console.log(data);
    })
    .catch((err)=>{
    console.log(err)
    })
     
    // 查找
    // user.find({name:'李四',pass:345})
    // .then((data)=>{
    // console.log(data)
    // })
    // .catch((err)=>{
    // console.log(err)
    // })
     
    //删除
    // user.deleteMany({name:'张三'})
    // .then((data)=>{
    // console.log(data.deletedCount)
    // })
     
    // 修改
    user.updateMany({name:'李四'},{name:'六六'})
    .then((data)=>{
    console.log(data)
     
    })
    .catch((err)=>{
    console.log(err)
    })
     
     
     
     
     
  • 相关阅读:
    Python学习9——异常
    提取微信小游戏代码
    linux 命令记录
    cpp 线程传递参数
    c++ primer 记录1
    你不知道的js
    js中的对象 函数 原型
    C++ 获取时间
    linux 常见命令
    git 的基本命令
  • 原文地址:https://www.cnblogs.com/lucktomiao/p/10421233.html
Copyright © 2011-2022 走看看