zoukankan      html  css  js  c++  java
  • express+mongodb+mongoose简单入门

    mongodb安装

    window安装方法就不讨论了,比较简单~我们来看一下在linux下面的安装步骤~(这里需要一点linux的简单命令知识哈)

    1.下载文件到服务器(先创建好自己想安装的目录)~

    curl -O http://fastdl.mongodb.org/linux/mongodb-linux-i686-2.0.1.tgz  #下载安装文件

    2.解压下载的文件

    [root@localhost soft]# tar -zxvf mongodb-linux-i686-2.0.2-rc2.tgz

    3.我们解压到这么长的文件名(mongodb-linux-i686-2.0.2-rc2)改一下吧,改成(mongodb)就好了,这样方便我们操作路径和好看简洁一点嘛。好啦,下载解压好改好名,现在我们看到的文件应该是这样的--->mongodb文件夹下面有bin文件夹,bin文件夹下面有一个应用程序文件。现在我们有下面的命令在mongodb目录下新建一个data目录存放数据、新建一个log目录存放日志,然后在log目录下新建一个日志文件,例如我们命名为mongodb.log

    [root@localhost mongodb]# mkdir log 
    [root@localhost mongodb]# mkdir data
    [root@localhost mongodb]# cd log
    [root@localhost log]# touch mongodb.log 

    Ok文件夹创建好了,然后我们定位到mongodb/bin目录中(如下命令)

    [root@localhost local]# cd mongodb/bin  

    鸡冻的时刻来了!我们来启动一下mongodb

    1.简单启动数据库

    [root@localhost mongodb]# ./bin/mongod(这个很清楚吧就是运行bin下面的mongod.exe文件)  -port 10001(设置端口号为10001,默认的是27017)  --dbpath=data/(设置存放数据库的路径)   --logpath=log/mongodb.log  (设置日志文件及路径)

    下面来一个上面命令的纯静版

    [root@localhost mongodb]# ./bin/mongod -port 10001 --dbpath = data/  --logpath=log/mongodb.log  

    在后台一直运行版加fork版

    [root@localhost mongodb]# ./bin/mongod -port 10001 --dbpath = data/ --logpath=log/mongodb.log --fork

    需要用户名密码登录版

    [root@localhost mongodb]# ./bin/mongod -port 10001 --dbpath = data/  --logpath=log/mongodb.log --fork --auth

    服务成功启动有没有!有没有!

    再接下来我们就要操作数据库啦 先运行mongodb的shell脚本

    [root@localhost mongodb]# ./bin/mongo
    //运行之后看到以下信息说明成功运行
    MongoDB shell version: 3.2.9
    connecting to: test

    2.好啦我们可以操作数据库了

    show dbs  //查下数据库列表
    admin //会输出默认的数据库名admin

    3.一些简单常用操作数据库的命令

    复制代码
    1.use mydb  //切换或叫打开数据库,如果数据库不存在则会自动创建(mydb为数据库名)
    2.db.dropDatabase()//删除数据库
    3.db.createCollection(name(集合名称),options(可选参数太多可自行网上查))   //创建集合(所谓的集合其实就相当于传统的表)
    4.db.mycollection(集合名).drop() //删除集合
    5.db.mycollection(集合名).insert({要存的数据json对象}) //插入数据到集合(表)
    6.db.mycollection(集合名).find() //查数据
    7.db.mycollection(集合名).find().pretty() //查数据带格式化
    8.db.mycollection.remove({'title':'MongoDB Overview'}) //删除带条件title参数的数据
    9.db.mycollection.remove({}) //删除所有数据 网上有很多是这样写的db.mycollection.remove() 小sam发现会报错
    复制代码

    好啦,先说这些吧,还有很多命令大家网上找找了。

    mongodb用户权限

    进入mongodb的操作台

    1.创建用户

    复制代码
    db.createUser({user:"你的用户名",pwd:"密码",roles:[{role: "userAdminAnyDatabase", db: "admin"}]})
    
    //roles是可选的参数,指用户指定的角色,可选角色参数如下
     1. 数据库用户角色:read、readWrite;
     2. 数据库管理角色:dbAdmin、dbOwner、userAdmin;
     3. 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
     4. 备份恢复角色:backup、restore;
     5. 所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
     6. 超级用户角色:root  
    // 这里还有几个角色间接或直接提供了系统超级用户的访问(dbOwner 、userAdmin、userAdminAnyDatabase)
     7. 内部角色:__system
    复制代码
    
    具体角色
    Read:允许用户读取指定数据库
    readWrite:允许用户读写指定数据库
    dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
    userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
    clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
    readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限
    readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限
    userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
    dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
    root:只在admin数据库中可用。超级账号,超级权限
    

    2.在mongodb shell 脚本用户登录

    db.auth("用户名","密码")

    好了,mongodb就先分享到这了.

    mongoose

    首先我们需要知道mongoose是一个模块,跟其他模块一样,用npm就能加到项目中了.确认了已经引入模块,以下代码用mongoose连接数据库

    复制代码
    //引用mongoose模块    
    var mongoose = require('mongoose');
    //连接数据库
    mongoose.connect('mongodb://数据库登录用户名:数据库登录密码@数据库连接地址')
    例:mongoose.connect('mongodb://:sam:123456@110.36.23.32:27017/samdb')
    
    //创建对象定义集合结构类型(其实就是表结构)
    var testSchema=new mongoose.Schema({
        userID:Number,
        name:String,
        comment:String
    },{collection:'sam'});//collection:'sam'表示操作的集合
    
    //操作数据库
    var Cat=mongoose.model('Cat',testSchemas);
    var kitty=new Cat({userID:1,name:"李四",comment:"路过路过"});
    kitty.save(function(err){
        if(err){
            console.log(err);
            data.err="保存失败";
        }else{
            data.err="保存成功";
        }
    });
  • 相关阅读:
    Java-IO流系列-随机存取文件流
    Java-IO流系列-标准输入输出流
    Java-IO流系列-转换流
    Java-IO流系列-缓冲流
    Java-IO流系列-FileInputStream和FileOutStream
    Java-IO流系列-FileReader与FileWriter
    Java-IO流系列-IO流原理以及流的分类
    windows使用chrome调试ios webView
    页面上多个audio只播放一个
    阿里网盘分享
  • 原文地址:https://www.cnblogs.com/winyh/p/6698834.html
Copyright © 2011-2022 走看看