node第三方模块mongoose简介及其使用方法

本文介绍了如何使用Mongoose库在Node.js环境中操作MongoDB数据库。通过Mongoose,可以方便地进行数据的增删改查,包括设置默认值、唯一性约束等。文章提供了详细的代码示例,涵盖了连接数据库、定义Schema、创建Model以及执行数据库的基本操作,如添加、查询、更新和删除数据。
摘要由CSDN通过智能技术生成

简介

  • mongoose : Mongoose库简而言之就是对node环境中MongoDB数据库操作的封装。一种对象模型工具,可以将数据库中的数据转换为JavaScript对象供我们使用。对mongodb操作变的简单方便。
  • mongoose是基于promise开发的,所有promise方法都可以使用。

使用步骤

1.下载安装 : npm i -S mongoose
2.引入并且创建连接

代码实现

var mongoose = require('mongoose');

//连接数据库
mongoose.connect('mongodb://localhost:27017/music',{ useNewUrlParser: true , useUnifiedTopology: true },(err)=>{

    if(err){
        console.log('数据库连接失败!!!');
        return;
    }

    console.log('数据库连接成功!!!');
    
	//schema 就是规范集合(表)的字段类型和值的,利用schema定义集合。
    var musicListSchema = mongoose.Schema({
        musicname : String,
        musicsiger : String,
        //default为默认值
        sigerage : { type : Number , default : 0 },
        date : { type : Date , default : new Date() },
        //unique规定了值的唯一性
        email : { type : String , unique : true }
    });


    //Model 是由schema生成的模型,可以对数据库进行操作。创建集合。
    var MusicListModel = mongoose.model('musicList' , musicListSchema , 'haha');

	//以下为数据库的增删改查可以根据项目需求选择使用
	
    //数据库的添加操作 : 单条
    MusicListModel({
        musicname : "稻香7",
        musicsiger : "周杰伦7",
        email : "888666@qq.com"
    }).save().then((res)=>{
        console.log(res);  // 返回的就是添加成功的这条数据
    }).catch((err)=>{
        //console.log(err);
        if(err){
            console.log('数据添加失败');
        }
    });
    
     //数据库的添加操作 : 多条
    MusicListModel.insertMany([
        {
            musicname : "稻香",
            musicsiger : "周杰伦",
            sigerage : 42
        },
        {
            musicname : "稻香",
            musicsiger : "周杰伦",
            sigerage : 43
        }
]).then((res)=>{
        console.log(res);  // 返回的就是添加成功的数组格式的数据
    }).catch((err)=>{
        console.log(err);
    }); 

    //查询:find()

     MusicListModel.find().then((infos)=>{
        console.log(infos);   // 查询所有数据,并返回一个数组类型。
    }); 

    MusicListModel.findOne().then((info)=>{
        console.log(info);   // 查询一条数据的结构,返回对象类型。
    });

    MusicListModel.find({"sigerage":"42"}).then((infos)=>{
        console.log(infos);   // 查询所有数据,并返回一个数组类型。
    }); 

    //find的第一个参数:是查询条件,第二个参数:返回指定的字段
    MusicListModel.find({},{"sigerage":1}).skip(1).limit(3).then((infos)=>{
        console.log(infos);   // 查询所有数据,并返回一个数组类型。
    }); 

    //更新数据
    MusicListModel.update({},{$set : {"musicname":"七里香"}}).then((info)=>{
        console.log(info);   // 
    }); 
    
    //删除数据
    //删除一条数据
    MusicListModel.deleteOne({}).then((info)=>{
        console.log(info);  
    }); 
    //删除所有数据
    MusicListModel.remove().then((info)=>{
        console.log(info);  
    });
 
});
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值