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个元素
参考文档
Mongoose 基本用法的更多相关文章
- mongoose的用法(注:连接数据库)
第一步:连接数据库: mongoose.connect('mongodb://'+user+':'+pass+'@mongo.duapp.com:'+port+'/xzWIRHYlWLAApdsfAz ...
- 在Mongoose中使用嵌套的populate处理数据
假设有如下mongodb的schema定义: drawApply = new Schema({ salesId: { type: Schema.ObjectId, ref: 'sales' }, mo ...
- Mongoose学习参考文档——基础篇
Mongoose学习参考文档 前言:本学习参考文档仅供参考,如有问题,师请雅正 一.快速通道 1.1 名词解释 Schema : 一种以文件形式存储的数据库模型骨架,不具备数据库的操作能力 Model ...
- mongoose学习笔记3--简单查询1
简述 查询就是返回一个集合中的文档的子集 Mongoose 模型提供了 find. findOne. findById 三种方法用于文档查询. 为了方便后面课程的有效学习,我们先添加一些测试数据. T ...
- Mongoose学习参考文档
一.快速通道 1.1 名词解释 Schema : 一种以文件形式存储的数据库模型骨架,不具备数据库的操作能力 Model : 由Schema发布生成的模型,具有抽象属性和行为的数据库操作对 Entit ...
- [js高手之路]Node.js+jade+mongodb+mongoose实现爬虫分离入库与生成静态文件
接着这篇文章[js高手之路]Node.js+jade抓取博客所有文章生成静态html文件继续,在这篇文章中实现了采集与静态文件的生成,在实际的采集项目中, 应该是先入库再选择性的生成静态文件.那么我选 ...
- [js高手之路]Node.js+jade+mongoose实战todolist(分页,ajax编辑,删除)
该系列文章索引: [js高手之路]node js系列课程-创建简易web服务器与文件读写 [js高手之路]node js系列课程-图解express+supervisor+ejs用法 [js高手之路] ...
- [js高手之路] es6系列教程 - promise常见用法详解(resolve,reject,catch,then,all,race)
关于promise我在之前的文章已经应用过好几次,如[js高手之路]Node.js+jade+express+mongodb+mongoose+promise实现todolist,本文就来讲解下pro ...
- Mongoose之 SchemaTypes 数据类型
SchemaTypes 数据类型 SchemaTypes handle definition of path defaults, validation, getters, setters, field ...
随机推荐
- plsql导入导出表结构和数据对象
一.Tools的导出表结构:export User objects 二.Tools的Export Tables选项 导出表数据:export tables (选择:exp.exe) 三. 导入表结构: ...
- 利用百度云接口实现车牌识别·python
一个小需求---实现车牌识别. 目前有两个想法 1. 调云在线的接口或者使用SDK做开发(配置环境和变异第三方库麻烦,当然使用python可以避免这些问题) 2. 自己实现车牌识别算法(复杂) 一开始 ...
- Oracle 存储过程判断语句正确写法和时间查询方法
判断语句:if 条件 then if 条件 then ************; elsif 条件 then ************; elsif 条件 then ***** ...
- 如何安装PHPstorm并配置php运行环境运行php项
php是程序开发者常用的编程语言,那么它就需要一款简单实用的集成开发环境,也就是一款舒服的编辑器,今天笔者为大家介绍phpstorm这款软件,并详细的讲解如何用它配置php项目 工具/原料 笔 ...
- Scala 学习笔记之集合(8) Try和Future
import util._ import concurrent.ExecutionContext.Implicits.global import concurrent.Future import co ...
- 使用echarts画一个类似组织结构图的图表
昨天,写了一篇关于圆环进度条的博客(请移步:Vue/React圆环进度条),已经烦不胜烦,今天又遇到了需要展示类似公司的组织结构图的功能需求,要冒了!!! 这种需求,自己用div+css也是可以实现的 ...
- 刷新:重新发现.NET与未来
微软在比尔·盖茨手中创立并崛起, 成为PC互联网时代的霸主,很多70,80后都有MVP Ediwang的体验: 当时的微软对我来说就是神的存在.因为我认识电脑到使用电脑的一切几乎都离不开这家伟大的公司 ...
- Loj10222佳佳的 Fibonacci
Description Analysis 10分:暴力+把m和n输反,你将获得10分的好成绩(Just like me.) 70分:暴力+把m和n输对,你将获得70分的好成绩 100分:矩阵加速 设 ...
- POWERUP攻击渗透实战2
准备环境: kali linux 攻击机 已获得靶机meterpreter(非管理)权限 win7 靶机 拥有powershell环境 运用到的模块:Get-RegistryAlwaysInstal ...
- DM7经常使用的命令汇总
由于DM7兼容oracle ,所以当你不知道某个命令时,大抵就是可以参照oracle的命令及语法,当然有极少的情况会不一样.常用命令如下: 1.连接登录 disql SYSDBA/SYSDBA@223 ...