zoukankan      html  css  js  c++  java
  • MongoDB学习之mongoose

    MongoDB介绍:

    MongoDB是基于Javascript语言的数据库,存储格式是JSON,而Node也是基于JavaScript的环境(库),所以node和mongoDB的搭配能减少因为数据转换带来的时间空间开销。

    Mongoose介绍:

    是MongoDB的一个对象模型工具,它将数据库中的数据转换为JavaScript对象以供你在应用中使用,封装了MongoDB对文档的的一些增删改查等常用方法,

    让NodeJS操作Mongodb数据库变得更加灵活简单。

    预备:

    一定要先开启mongodb服务,进入mongodbin,执行mongod --dbpath d:data

    d:data是存储数据的地方,通常位于mongodb安装的根目录下。

    第一步,在项目里安装mongoose,并引入

    // 安装

    cnpm install mongoose --save

    // 引入

    const mongoose = require('mongoose');

    第二步,连接数据库

    // 连接本地的数据库

    let db = mongoose.createConnection('mongodb://localhost/testmongoose');

    接着:

    // 设置数据类型

    let monSchema = new mongoose.Schema({
        name: {
            type: String,
            default: 'username'
        },
        age: {
            type: Number
        },
        gender: {
            type: String,
            default: '女'
        }
    });

    // 选择集合

    let MonModel = db.model('user', monSchema);

    // 模拟一个数据集

    let content = {name: 'nick', age: 23, gender: ''};

    // 实例化对象并插入数据

    let monInsert = new MonModel(content);

    // 保存并关闭连接

    monInsert.save((err) => {
        if(err) {
            console.log(err);
        } else {
            console.log('成功插入数据');
        }
        // 关闭数据库
        db.close();
    });

    执行这个node文件,插入数据成功!

    叮叮~~数据库里面有数据啦!

    mongo.js完整代码:

    // 引入模块
    const mongoose = require('mongoose');
    // 连接数据库
    let db = mongoose.createConnection('mongodb://localhost/testmongoose');
    // 设置数据类型
    let monSchema = new mongoose.Schema({
        name: {
            type: String,
            default: 'username'
        },
        age: {
            type: Number
        },
        gender: {
            type: String,
            default: '女'
        }
    });
    // 选择集合
    let MonModel = db.model('user', monSchema);
    // 数据集
    let content = {name: 'Nick', age: 23, gender: '男'};
    // 实例化对象并插入数据
    let monInsert = new MonModel(content);
    monInsert.save((err) => {
        if(err) {
            console.log(err);
        } else {
            console.log('成功插入数据');
        }
        // 关闭数据库
        db.close();
    });

     

    增删改查完整代码:

    // 引入模块
    const mongoose = require('mongoose');
    // 连接数据库
    let db = mongoose.createConnection('mongodb://localhost/testmongoose');
    // 设置数据类型
    let monSchema = new mongoose.Schema({
        name: {
            type: String,
            default: 'username'
        },
        age: {
            type: Number
        },
        gender: {
            type: String,
            default: '女'
        }
    });
    // 选择集合
    let MonModel = db.model('user', monSchema);
    
    // 插入数据
    function insertData () {
        // 数据集
        let content = {name: 'Nick', age: 23, gender: '男'};
        // 实例化对象并插入数据
        let monInsert = new MonModel(content);
        monInsert.save((err) => {
            if(err) {
                console.log(err);
            } else {
                console.log('成功插入数据');
            }
            // 关闭数据库
            db.close();
        });
    }
    
    // 删除数据
    function deleteData () {
        // 要删除的条件
        let del = {name: 'Nick'};
        MonModel.remove(del, (err, result) => {
            if(err) {
                console.log(err);
            } else {
                console.log('delete: ' + result);
            }
            // 关闭数据库
            db.close();
        });
    }
    
    // 修改数据
    function updateData() {
        // 原数据字段值
        let oldValue = {name: 'Nick'};
        // 单条件更新
        let newData1 = {$set: {name: '风夏'}};
        // 多条件更新
        let newData2 = {$set: {name: '风夏', gender: '女'}};
        MonModel.update(oldValue, newData2, (err, result) => {
            if(err) {
                console.log(err);
            } else {
                console.log('update');
            }
            // 关闭数据库
            db.close();
        });
    }
    
    // 查询数据
    function findData() {
        // 要查询的字段
        let content = {name: '风夏'};
        let field = {name: 1, age:1, gender:1};
        MonModel.find(content, field, (err, result) => {
            if(err) {
                console.log(err);
            } else {
                console.log(result);
            }
        });
    }
    
    //insertData();
    //deleteData();
    //updateData();
    findData();
  • 相关阅读:
    Jmeter接口测试与数据驱动
    Jmeter内存溢出
    Mac下多版本pip共存
    Linux命令: ps
    intellij ultimate2019.3 注册
    纪念已经逝去的十年
    H3C路由器设置NAT回环、端口回流
    理清PHP在Linxu下执行时的文件权限
    windows下vagrant的安装使用
    无限极分类(adjacency list)的三种方式(迭代、递归、引用)
  • 原文地址:https://www.cnblogs.com/lqcdsns/p/6413093.html
Copyright © 2011-2022 走看看