zoukankan      html  css  js  c++  java
  • mongoose入门以及 mongoose 实现数据 的增、删、改、查

      

    一、mongoose 介绍

    Mongoose 是在 node.js 异步环境下对 mongodb 进行便捷操作的对象模型工具。Mongoose NodeJS 的驱动,不能作为其他语言的驱动。

    Mongoose 有两个特点

    1、通过关系型数据库的思想来设计非关系型数据库

    2、基于 mongodb 驱动,简化操作

    二、mongoose 的安装以及使用

    官网:https://mongoosejs.com/

    1. 安装

    npm i mongoose --save

    2、引入 mongoose 并连接数据库

    const mongoose = require('mongoose'); 
    mongoose.connect('mongodb://localhost/test'); 如果有账户密码需要采用下面的连接方式: 
    mongoose.connect('mongodb://eggadmin:123456@localhost:27017/eggcms');

    3、定义 Schema

    数据库中的 Schema,为数据库对象的集合。schema mongoose 里会用到的一种数据模式, 可以理解为表结构的定义;每个 schema 会映射到 mongodb 中的一个 collection,它不具备操作数据库的能力

    var UserSchema=mongoose.Schema({ 
        name: String,
        age:Number,
        status:'number' 
    })

    4、创建数据模型
    定义好了 Schema,接下就是生成 Modelmodel 是由 schema 生成的模型,可以对数据库的
    操作。

    注意:mongoose.model 里面可以传入两个参数也可以传入三个参数 mongoose.model(参数 1:模型名称(首字母大写),参数 2:Schema)

    mongoose.model(参数 1:模型名称(首字母大写),参数 2:Schema,参数 3:数据库集合名 称)

    如果传入 2 个参数的话:这个模型会和模型名称相同的复数的数据库建立连接:如通过下面 方法创建模型,那么这个模型将会操作 users 这个集合。

    如果传入 3 个参数的话:模型默认操作第三个参数定义的集合名称

    var User=mongoose.model('User', UserSchema);

    5、查找数据

    User.find({},function(err,docs){ 
        if(err){
            console.log(err);
            return; 
        }
        console.log(docs);
     })

    6、增加数据

    var u=new User({ 
    //实例化模型 传入增加的数据
         name:'lisi2222333',
         age:20,
         status:true 
    })
    u.save();

    7、修改数据

    User.updateOne({ name: 'lisi2222' }, { name: '哈哈哈' }, function(err, res) {   
        if(err){
            console.log(err);
            return;
         }  
    console.log('成功') 
    });    

    8、删除数据

    User.deleteOne({ _id: '5b72ada84e284f0acc8d318a' }, function (err) { 
        if (err) {
            console.log(err);
            return; 
        }
        // deleted at most one tank document
        console.log('成功'); 
    });        

    9、保存成功查找

    var u = new User({
        name: 'lisi2222333',
        age: 20,
        status: true //类型转换
    })
    u.save(function (err, docs) {
        if (err) {
            console.log(err);
            return;
        }
        console.log(docs);
        User.find({}, function (err, docs) {
            if (err) {
                console.log(err);
                return;
            }
            console.log(docs);
        })
    });
  • 相关阅读:
    Minutes和TotalMinutes的区别
    C#的"?"修饰符和"??"运算符
    Navicat 连接MySQL 8.0.11 出现2059错误
    EL1004E: Method call: Method fmtdate(java.util.Date,java.lang.String) cannot be found on org.thymele
    es nested结构判断不为空
    es nested嵌套查询
    CPU基础知识线程切换
    CPU基础知识CPU的组成 运算器、控制器、寄存器
    几个常用寄存器
    Linux笔记用户态与内核态
  • 原文地址:https://www.cnblogs.com/loaderman/p/11516001.html
Copyright © 2011-2022 走看看