node操作mongodb的一些方法

/*
详细操作mongodb数据库
*/ 

// 导入包
let mongoose = require('mongoose')
// 2 连接数据库
mongoose.connect('mongodb://localhost:27017/kd23',(err) => {
  if(err) return console.log(err);
  console.log('连接成功');
})

// 3 创建表结构
let users = new mongoose.Schema({
  // 对字段的描述
  username:String,
  age:{
    type:Number,
    min:18,
    max:130,
    required:true // 必填
  },
  gender:{
    type:String,
    // 写入数据库的gender,只能是enum中的
    enum:['男','女','保密']
  },
  desc:{
    type:String,
    minlength:10,
    maxlength:100,
    default:'没啥好说的'
  },
  hobby:Array,
  createTime:{
    type:Date,
    default:Date.now(),

  }
})

// 4 创建结构模型
let usersModel = mongoose.model('users',users);

// 5 添加一条数据(每次换数据,多添加几次就可得到多个数据)
new usersModel({
  username:'KK',
  age:20,
  gender:'男',
  desc:'hello Alice hahahahaha',
  hobby:['健身','游泳']
})
.save()
.then(res => console.log(res))
.catch(err => console.log(err))
 
// 6 查询和筛选
  // 基础查询,直接调用find()查询所有数据
  usersModel.find().then(res => console.log(res))
  // 基础条件查询 $gt 大于 $lt 小于 $gte 大于等于 $lte 小于等于
  usersModel.find({username:'KK'}).then(res => console.log(res))
  usersModel.find({age:{$gt:10,$lt:20}}).then(res => console.log(res))
  // 基础条件筛选
  usersModel
    .find() //所有数据
    .or([{username:'KK'},{age:18}]) // 并列条件[并列条件在一个数组中]
    .and([{username:'KK'},{age:20}])
    .where({age:{$gt:10, $lt:20}})
    .then(res => console.log(res))
    .catch(err => console.log(err))
  分页筛选
    usersModel
    .find()
    .skip(0) //开始索引0开始
    .limit(2) //获取2个
    .then(res => console.log(res))

// 7 结构模型提供的一些方法(使用在最后)
  // findByid(数据id)
  // findByidAndUpdate(数据id,修改信息)
  // findByidAndDelete(数据id) 删除
  // findOne({条件}) // 按条件查找第一个满足条件的
  // findOneAndUpdate({条件}) //按条件查找一个并修改

// 8 修改语法
  // 修改多个 将所有age=18的用户的gender修改为保密
  usersModel.updateMany({age:18},{gender:'保密'}).then(res => console.log(res))
  // 修改一个 把第一个gae=18的gender改成女
  usersModel.updateOne({age:18},{gender:'女'}).then(res => console.log(res))

// 9 删除语法
  // 删除一个 删除第一个age=18的
  usersModel.deleteOne({age:18}).then(res => console.log(res))
  // 删除多个 删除所有gender=保密的
  usersModel.deleteMany({gender:'保密'}).then(res => console.log(res))
  // 删除所有
  usersModel.deleteMany().then(res => console.log(res))

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值