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();
  • 相关阅读:
    [计算机网络] 互联网协议栈(TCP/IP参考模型)各层的主要功能及相应协议
    [计算机网络-应用层] P2P应用
    [剑指Offer] 45.扑克牌顺子
    [剑指Offer] 44.翻转单词顺序列
    [STL] 如何将一个vector赋给另一个vector
    最近更新少,是因为在用框架做项目
    转收藏:Git常用命令速查表
    CentOS常用指令
    CentOS修改服务器系统时间
    Javascript定时跳转
  • 原文地址:https://www.cnblogs.com/lqcdsns/p/6413093.html
Copyright © 2011-2022 走看看