mongodb

数据库:mongodb

使用mongoose操作数据库

npm init -y

npm i mongoose -s

const mongoose = ("mongoose");

//连接mongoose数据库 + 创建数据库  (有就连接没有就创建)

mongoose.connect("mongodb://127.0.0.1:27017/库名", {

        //固定配置

        useNewUrlParser:true,

        useUnifedToplogy:true;

        

})

.then(()=>{

        console.log("连接数据库成功");

})

.catch(()=>{

        console.log("连接数据库失败")

})

//设置表规则:设置表中有哪些字段,类型等  new Schema

const userSchema new Schema({

        name:String,    //类型为 String 

        age:Number,

        sex:String

})

//往数据库里创建表 mongoose.model   返回操作对象

const userTable = mongoose.model("表名",  userSchema);

//往表里新增一条数据  create

userSchema.create({

        name:"cherry",

        age:16,

        sex:"女"

})

.then(()=>{

        console.log("数据增加成功");

})

.catch(()=>{

        console.log("数据增加失败")

})

//查询1条符合条件的数据   findOne

userTable.findOne({

        //条件

        age:20

}).then(result=>{

})

userTable.findById(ID).them(result=>{})

//查询所有符合条件的数据 find

userTable.find({

        age:16,

        sex:"男",

        money:{

                $gt:210,

                &lt:26

        }{

                name:false    //true 保留  false 过滤   

        //全部只写true则只保留true  只写false 只过滤这些其他都要

        }

        {

               //以字段的值作为条件进行排序

                sort:{

                        age:-1   //正数升序 负数降序

                        skip:2    //调至指定位置,将该位置之后的数据返回

                        limit:2    //查询的数据,只要前n条

                }

        }

}).them(result=>{})

//查询操作符

$gt  大于

$lt    小于

$gte  大于等于

$lte    小于等于

$eq     等于

$ne    不等于       

********       比较操作符只能比较数字        *******

$and           且

$or          或

$nor          都不满足

like:{

        $in:"帅气"        //存在有帅气的

        $nin:["敲代码" ,"女"  ]    //不存在   敲代码  女的

}

$size   数组的长度

$all     

//删除

userTable.deletMany({}).then(result=>{})

//改

userTable.updateOne({原数据},{改的数据}).then(result=>{})

$set:{              //修改

        "like.1":"内容"      //字段名.下标

        //假如不知道要修改内容的下标

        "like.$":"内容"        //在原数据里加like:{$elemMatch:{$in:"原内容"}}

}

//数组数据增加值

$addToSet:{    //会去重

        单个直接添加 多个数据添加家$each   遍历

       

}

$puch  //不去重

$pop    //删除   数组数据 like:1    正数从后面开删 负数从前面开删

$pull    //删除内容为某某的数据  不能用$each  用$in

//字段值自增1

$inc:{}

删除该数据的字段

$unset:{}

//联表查询

表规则里面要有一个专门的关联字段 存储id

例  

 

现在表名.find({
    name:""
}).populate({        //populate 关联到目标表进行联合查询
    path:"num",      //关联字段
    model:目标表名的操作对象
}).exec(err,result)=>{}

*创建表规则的验证

type:Number       //常用 Number  String   Array

required:true  //该字段必填

//数字验证

min:0,

max:[150,"你真的大于150岁吗?"]   //当大于最大值时,报错提升该文本

//预设字段

enum:["男","女"]

//限制字符长度

maxlength:10,

minlength:1

自定义校验

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

WA终结者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值