mongoose使用之创建连接数据库

mongoose用法

下载

首先你需要有个MongoDB数据库,然后进入MongoDB的文件夹中的bin文件启动它(使用cmd)

mongod.exe -dbpath xxxxxxx(自己指定路径,mongoDB数据文件存放的地方)

启动好后,下载mongoose插件

npm install mongoose

mongoose的使用

mongoose的引用

在文件中,通过require引用

    let mongoose = require('mongoose');
使用mongoose连接MongoDB数据库

使用mongoose连接MongoDB有以下几种形式:
1.最简单的(无密码,用户名等)

mongoose.connect(‘mongodb://localhost/database’)

2.有密码、用户名、参数等

mongoose.connect(‘mongodb://username:password@host:port/database?options…’);

3.将需要传入的参数进行封装

    let url = "xxxxx";
    let options = {
        db: { native_parser: true },
        server: { poolSize: 5 },
        replset: { rs_name: 'myReplicaSetName' },
        user: 'myUserName',
        pass: 'myPassword'
        ...
    }
     mongoose.connect(url,options);
    //这里的options优先于连接字符串中传递的选项(第二种方法的option)

第三种方法options中可写入的有:

键名描述
db数据库设置
server服务器设置
replset副本集设置
user用户名
pass密码
auth鉴权选项
mongos连接多个数据库

例子(第一种方法)如下

    let mongoose = require('mongoose'); //引用
    mongoose.connect("mongodb://127.0.0.1:27017/try",(err)=>{
        if(err){
            console.log(“连接失败”);
        }else{
            console.log("连接成功");
            ...
        }
    })

这里写图片描述
另外,如果需要细致的监听connect连接的状态从而再执行下一步,可这样

    mongoose.connection.on("状态",()=>{
        console.log("xxx");
        ....
    })
    状态分为以下几种:
    connected   已连接
    error       连接失败
    disconnected    断开连接
        ......
连接多个数据库
    mongoose.connect('urlA,urlB,...', {
         mongos : true  //必须的
    },[callback])
创建数据库,表以及字段名
Schema(创建字段名)

用来定义字段名和类型,支持的类型包括以下8种:

类型描述
String字符串
Number数字
Date日期
Buffer二进制
Boolean布尔值
Mixed混合类型
ObjectId对象ID
Array数组

使用方法:

    var mongoose = require('mongoose');
    var Schema = mongoose.Schema;

    var mySchema = new Schema({
        title:  String,
        author: String,
        username:   String,
        password: Number
    });

需要注意:声明字段类型只能通过以下两种方法
1. 声明的类型开头大写如

title : String


  1. 声明的类型使用全小写的话用引号括住

title : ‘string’

Model(将Schema模型实例化)

将Schema实例化,这一步骤是必须的!

    var schema = new mongoose.Schema({
        username:String, 
        password: "number"
    });
    var Model = mongoose.model('Model', schema);
将数据存入到创建的表中

有三种方法,

方法一:save()

实例化文档document

    var mongoose = require('mongoose');
    mongoose.connect("mongodb://127.0.0.1:27017/try", function(err) {
    if(err){
        console.log('连接失败');
    }else{
            console.log('连接成功');
            var schema = new mongoose.Schema({
                username:"string",
                password:"number"
            });
            var Model = mongoose.model('Model', schema);
            var doc1 = new Model({ 
                username:"admin",
                password:123456
            });
            doc1.save();  //这一步骤是必须的!save函数中可以使用cb
        }
    });

这里写图片描述

方法二:create()

model中的create()方法,该方法可同时新增多个文档

Model.create(docs,[callback])

新增{username:”John”}以及{username:”Jonny”}

    var mongoose = require('mongoose');
    mongoose.connect("mongodb://127.0.0.1:27017/try", function(err) {
        if(!err){
            var schema = new mongoose.Schema({
                username:"string",
                password:"number"
            });        
            var temp = mongoose.model('temp', schema);   
            temp.create(
            {username:"John"},
            {username:"Jonny"},function(err,doc1,doc2){
                    console.log(doc1); 
                    console.log(doc2); 
                    //回调函数
                });       
            }           
    });
方法三:insertMany()

Model.insertMany(doc(s), [options], [callback])

新增{username:”John”}以及{username:”Jonny”}

    var mongoose = require('mongoose');
    mongoose.connect("mongodb://127.0.0.1:27017/try", function(err) {
        if(!err){
            var schema = new mongoose.Schema({
                username:"string",
                password:"number"
            });        
            var temp = mongoose.model('temp', schema);   
            temp.insertMany(
            {username:"John"},
            {username:"Jonny"},function(err,doc1,doc2){
                    console.log(doc1); 
                    console.log(doc2); 
                    //回调函数
                });       
            }           
    });

这三种方法中,只有save()方法需要一个一个save数据插入的,其他两个可以直接多个数据插入。


另外,以上的创建数据库,表格,字段名等等示例中,如果数据库中已存在的,他将不会重新创建,而只会添加数据,如

    var mongoose = require('mongoose');
    mongoose.connect("mongodb://127.0.0.1:27017/try", function(err) {
        if(!err){
           ...      
    });

上面的代码示例中无数次连接try数据库。这里代表着两种意思:

  • 若MongoDB数据库中有try数据库直接连接
  • 若MongoDB数据库中没有try数据库则创建

table(表)、字段名也同上。另外,若是创建完schema之后需要添加漏掉的字段名,可这样

    var MySchema = new Schema({ name: 'string'});
    MySchema.add({password:"number"});
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值