Mongoose 基本用法

 

1. SchemaTypes数据类型

数据类型描述
String字符串
Number数字
Date日期
Boolean布尔值
Mixed混合
Objectid对象ID
Array数组

 

 

 

 

 

 

 

 

 

 

2. 基本用法

首先创建3张表:

var studentSchema = new student({
  name: { // 学生姓名
      type: String,
      required: true
  },
 classNo: {  // 班级编号
      type: String
  },
  createTime: {  // 创建时间
      type: Date,
      default: Date.now
  }
})

var ClassSchema = new classNo({
    className: {  // 班级名称
        type: String,
        required: true,
        unique: true
    },
    teaNo:{  // 教师编号
        type: String
    },
    createTime: {
        type: Date,
        default: Date.now
    }
})

var TeaSchema = new teacher({
    teaName: {  // 教师名称
        type: String,
        required: true,
        unique: true
    },
    createTime: {
        type: Date,
        default: Date.now
    }
})

 

  • 查询全部

function findAll() {
    stu.find(function (err, ret) {
        if (err) {
            console.log('查询失败')
        } else {
            console.log(ret)
        }
    })
}
  • 分页查询( limit : 需要显示多少条数据, skip : 跳过多少数据 )

function findAll() {
    stu.find(function (err, ret) {
        if (err) {
            console.log('查询失败')
        } else {
            console.log(ret)
        }
    }).limit(2)
    .skip(2)
}
  • 根据时间倒叙查询 sort

function findAll() {
    stu.find(function (err, ret) {
        if (err) {
            console.log('查询失败')
        } else {
            console.log(ret)
        }
    }).sort({createTime: -1})
}
  • 按名字查询(返回数组)

function findName() {
    stu.find({
        name: '小名'
    }, function (err, ret) {
        console.log(ret)
    })
}


返回值:
[ { _id: 5c0894c217973525c41d0ede,
    name: '小名',
    classNo: '5c08944bfb6d6720cca60214',
    createTime: 2018-12-06T03:17:22.933Z,
    __v: 0 } ]
  • 按名字查询(返回对象)

function findName() {
    stu.findOne({
        name: '小名'
    }, function (err, ret) {
        console.log(ret)
    })
}


返回值:
{ _id: 5c0894c217973525c41d0ede,
  name: '小名',
  classNo: '5c08944bfb6d6720cca60214',
  createTime: 2018-12-06T03:17:22.933Z,
  __v: 0 }
  • OR 条件查询

function findAll() {
    stu.find({
        $or: [
            {name: '哎哎哎'},
            {classNo: '5c08944bfb6d6720cca60214'}
        ]
    },function (err, ret) {
        if (err) {
            console.log('查询失败')
        } else {
            console.log(ret)
        }
    })
}
  • 模糊查询 (查询名字 带 的数据)

function findAll() {
    stu.find({
        name: /小/
    },function (err, ret) {
        if (err) {
            console.log('查询失败')
        } else {
            console.log(ret)
        }
    })
}
  • 找出名字 带 ,且只输出 name 字段 【注意】: _id字段默认输出

function findAll() {
    stu.find({
        name: /小/
    }, 'name' ,function (err, ret) {
        if (err) {
            console.log('查询失败')
        } else {
            console.log(ret)
        }
    })
}
  • 不带 _id ,可以进行如下设置

function findAll() {
    stu.find({
        name: /小/
    }, {'name': 1, _id: 0} ,function (err, ret) {
        if (err) {
            console.log('查询失败')
        } else {
            console.log(ret)
        }
    })
}

 

3. 常用查询条件

$or    或关系
$nor    或关系取反
$gt    大于
$gte    大于等于
$lt    小于
$lte    小于等于
$ne    不等于
$in    在多个值范围内
$nin    不在多个值范围内
$all    匹配数组中多个值
$regex   正则,用于模糊查询
$size   匹配数组大小
$maxDistance 范围查询,距离(基于LBS)
$mod    取模运算
$near    邻域查询,查询附近的位置(基于LBS)
$exists   字段是否存在
$elemMatch 匹配内数组内的元素
$within   范围查询(基于LBS)
$box     范围查询,矩形范围(基于LBS)
$center   范围醒询,圆形范围(基于LBS)
$centerSphere 范围查询,球形范围(基于LBS)
$slice    查询字段集合中的元素(比如从第几个之后,第N到第M个元素

 

 

参考文档

 

转载于:https://www.cnblogs.com/zyulike/p/10081325.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值