• mongoose基本增删改查


    1.安装

    打开命令行

    npm i mongoose

    2.连接数据库

    // 引入安装的包
    var mongoose = require('mongoose');
    mongoose.connect('mongodb://localhost/mongoo');
    //mongoo这里是代表数据库的名称
    var db = mongoose.connection;
    db.on('error', console.error.bind(console, '连接失败'));
    db.once('open', function() {
      console.log('连接成功')
    });
    // new一个schema:把一个本身非结构化的数据变成结构化
    var kittySchema = new mongoose.Schema({
        name: String,
        age:Number,
        gender:String
    });
    // 根据schema得到一个model,这个model是一个class
    var Kitten = mongoose.model('Kitten', kittySchema);

    3.增加数据

    var felyne = new Kitten({ name: '王富贵',age:18,gender:'男' });
    felyne.save(function (err, res) {
        //回调第一个参数代表出错
        if (err) return console.error(err);
        //第二个带个成功的回调参数
        console.log(res)
    });

    添加数据的方式有两种一种是userTest.save()需要实例化模型,另一种是user.create(data,callback(err,res))这种方式不用实例化模型。

    4.删除数据

    Kitten.remove({name:"王富贵"},function(arr,res){
        console.log(res)
    })
    //执行完成出现这样的代码
    //{ n: 1, ok: 1, deletedCount: 1 }
    //  n:条件匹配到的数据条数
    //  ok: 1代表语句执行成功
    //  deletedCount: 被删除的数量

    此方法将删除命令直接发送到MongoDB,不涉及Mongoose文档。由于不涉及Mongoose文档,因此不会执行任何中间件(挂钩)

    Kitten.deleteOne({name:"王富贵"},function(arr,res){
        console.log(res)
    })
    //此方法和remove类似,最多删除一个文档
    此方法和remove类似,最多删除一个文档
    Kitten.deleteMany({name:"王富贵"},function(arr,res){
        console.log(res)
    })
    //此方法和remove类似,从集合中删除所有匹配的文档

    此方法和remove类似,从集合中删除所有匹配的文档

    5.更新数据(改数据)

    Kitten.update({name:"王富贵"},{$set:{age:26}},function(arr,res){
        console.log(res)
    })
    //update 只匹配查找到的第一条数据并进行更换
    update 只匹配查找到的第一条数据并进行更换
    Kitten.updateMany({name:"王多余"},{$set:{age:26}},function(arr,res){
        console.log(res)
    })
    //updateMany 匹配查找到的所有document并更改
    updateMany 匹配查找到的所有document并更改
    Kitten.updateOne({name:"王多余"},{$set:{age:36}},function(arr,res){
        console.log(res)
    })
    //updateOne 更新匹配的第一个文档
    findByIdAndUpdate 根据id查找然后修改
    Kitten.findByIdAndUpdate(id,{name:"王多余"},{new:true},function(arr,res){
        console.log(res)
    })
    //findByIdAndUpdate 根据id查找然后修改
    //第一个参数必须为id
    //第二个参数是需要修改的内容
    //第三个参数代表返回的数据是否为更新后 true为是。默认为flast。可不写
    //回调  异步代码

    6.查找数据

    Kitten.find({},function(err,res){
        console.log(res)
    })
    //查找数据库中所有数据
    Kitten.find({name:'王富贵'},function(err,res){
        console.log(res)
    })
    //查找所有名字为王富贵的数据
    Kitten.findOne({name:'王富贵'},function(err,res){
        console.log(res)
    })
    //查找第一个名字为王富贵的数据
    Kitten.findById({_id:'5e5b43db4464113f1843e380'},function(err,res){
        console.log(res)
    })
    //根据id查找对应的数据

    查询有三种方式find查全部符合要求,findOne查到的第一个,findById通过集合中每条数据特定的_id来查询

    查询方式还可以特定条件来查找

    //"$lt"(小于)
    //"$lte"(小于等于)
    //"$gt"(大于)
    //"$gte"(大于等于)
    //"$ne"(不等于)
    Kitten.find({age: {$ne: 18}},function (err,res) {
        console.log(res)
        //查找age不等于18的数据
    })

    范围查找

    // "$in"
    // "$nin"
    Kitten.find({age: {$nin: [20,24]}},function (err,res) {
        console.log(res)
        //查找age不为20-24之间的数据
    })
    // "$in"查找20-24之间的数据
    // "$nin"查找不为20-24之间的数据

    or

    Kitten.find({$or: [{name:'老王'},{name:'王富贵'}]},function (err,res) {
        console.log(res)
        //查找符合name为老王或者为王富贵的数据
    })

    增加数据中的save()要实例化model,其他皆可不用实例化model

  • 相关阅读:
    MFC中获取系统当前时间
    我的定时关机程序(MFC实现) .
    编写一个闹钟和定时关机工具(MFC VS2010)
    Spark-SQL之DataFrame操作
    RDD操作
    Scala之Object (apply) dycopy
    Intellij IDEA 快捷键整理(dyCopy)
    python第三方包的windows安装文件exe格式
    pythong 中的 __call__
    触发器学习笔记(:new,:old用法)
  • 原文地址:https://www.cnblogs.com/dcyd/p/12389489.html
Copyright © 2020-2023  润新知