mongoose的增删改查

32 篇文章 0 订阅
20 篇文章 1 订阅

数据库的4大基本操作增删改查。

先定义好模型

const Mongoose = require('mongoose')
var user = new Mongoose.Schema({//Schema要实例化mongoose
    user: String,
    age: {
        type: Number,
        validate: {//验证器
            validator: function (v) {
                if (v > 30) {
                    return false
                }
            },
            message: '年龄不能大于30'
        },
        required: true//必要数据器
    },
    inter: Object
})
module.exports = Mongoose.model('order',order)

控制层中引入这个模型

const user = require('../model/user')

var userTest = new user({
    user: '测试名字',
    age: 18,
    inter: {
        sport: 'football',
        eat: 'apple'
    }
})

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

user.remove({user: '测试名字'},function (err,res) {
    if (err) {
        console.log(err)
    } else {
        console.log(res)
    }
})

user.update({user: '测试名字'},{$set: {age: 24}},function (err,res) {
    if (err) {
        console.log(err)
    } else {
        console.log(res)
    }
})

查找user字段为‘测试名字’的数据将数据中的age字段的值改为24

user.find({user: '测试名字'},function (err,res) {
    if (err) {
        console.log(err)
    } else {
        console.log(res)
    }
})
user.findOne({user: '测试名字'},function (err,res) {
    if (err) {
        console.log(err)
    } else {
        console.log(res)
    }
})
user.findById({_id: '5c6e6687e78a68053c19633d'},function (err,res) {
    if (err) {
        console.log(err)
    } else {
        console.log(res)
    }
})

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

查询方式中还可以设定条件

"$lt"(小于)
"$lte"(小于等于)
"$gt"(大于)
"$gte"(大于等于)
"$ne"(不等于)
user.find({age: {$ne: 18}},function (err,res) {
    if (err) {
        console.log(err)
    } else {
        console.log(res)
    }
})
"$in"(看例子)
"$nin"(看例子)
user.find({age: {$nin: [19,24]}},function (err,res) {
    if (err) {
        console.log(err)
    } else {
        console.log(res)
    }
})
$in age字段为19和24的数据
$nin age字段不为19和24的数据
"$or"(符合多个条件查询中的一个)
user.find({$or: [{user: '测试名字'},{age: 18}]},function (err,res) {
    if (err) {
        console.log(err)
    } else {
        console.log(res)
    }
})
符合user字段为测试名字或者age字段为18的数据
"$exists"(表示是否存在的意思)
user.find({id: {$exists: false}},function (err,res) {
    if (err) {
        console.log(err)
    } else {
        console.log(res)
    }
})
不存在id字段的数据

除了增加数据中的save()要实例化model之外,其他的所有方法都不用实例化model直接使用

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值