mongoose学习笔记3--简单查询1
简述
查询就是返回一个集合中的文档的子集
Mongoose 模型提供了
find、
findOne、
findById
三种方法用于文档查询。
为了方便后面课程的有效学习,我们先添加一些测试数据。
TestModel.create([
{ name:"test1", age:20 },
{ name:"test2", age:30 },
{ name:"test3", age:24 },
{ name:"test4", age:18 },
{ name:"test5", age:60 },
{ name:"test6", age:50, email:"t6@qq.com" },
{ name:"test7", age:40, email:"t7@163.com" },
{ name:"test8", age:27 },
{ name:"test9", age:27, email:"t9@yeah.net" },
{ name:"test10",age:65 }
], function(error,docs) {
if(error) {
console.log(error);
} else {
console.log('save ok');
}
});
注:以上数据仅供后面测试,可以自行修改属性值,但是必须符合我们之前所定义集合属性,否则出错就...
find 过滤查询
前面我们学习了find的基本使用方法,相信你已经对它完全掌握了,今天呢将对find方法进行更深一步的学习,了解和掌握它的过滤功能,怎么个过滤法呢,请看如下介绍。
1.属性过滤 find(Conditions,field,callback);
field省略或为Null,则返回所有属性。
//返回只包含一个键值name、age的所有记录
TestModel.find({},{name:1, age:1, _id:0},function(err,docs){
//docs 查询结果集
})
注:我们只需要把显示的属性设置为大于零的数都可以,当然1是最好理解的,_id是默认返回,如果不要显示加上("_id":0),但是,对其他不需要显示的属性且不是_id,如果设置为0的话将会抛异常或查询无果。
findOne的基本用法
与find相同,但只返回单个文档,也就说当查询到即一个符合条件的数据时,将停止继续查询,并返回查询结果。
1.单条数据 findOne(Conditions,callback);
TestModel.findOne({ age: 27}, function (err, doc){
// 查询符合age等于27的第一条数据
// doc是查询结果
});
findOne方法,只返回第一个符合条件的文档数据。
findById的基本用法
与findOne相同,但它只接收文档的_id作为参数,返回单个文档。
1.单条数据 findById(_id, callback);
TestModel.findById('obj._id', function (err, doc){
//doc 查询结果文档
});
注:同样是单条数据,findById和findOne还是有些区别的。
本次小结
我们讲述了针对数据的几个查询方法,根据不同条件选择相应的查询方法。
总结:
1. find过滤查询 :find查询时我们可以过滤返回结果所显示的属性个数。
2. findOne查询 :只返回符合条件的首条文档数据。
3. findById查询:根据文档_id来查询文档。
mongoose学习笔记3--简单查询1的更多相关文章
- MyBatis:学习笔记(3)——关联查询
MyBatis:学习笔记(3)--关联查询 关联查询 理解联结 SQL最强大的功能之一在于我们可以在数据查询的执行中可以使用联结,来将多个表中的数据作为整体进行筛选. 模拟一个简单的在线商品购物系统, ...
- mybatis学习笔记(10)-一对一查询
mybatis学习笔记(10)-一对一查询 标签: mybatis mybatis学习笔记10-一对一查询 resultType实现 resultMap实现 resultType和resultMap实 ...
- Spark学习笔记0——简单了解和技术架构
目录 Spark学习笔记0--简单了解和技术架构 什么是Spark 技术架构和软件栈 Spark Core Spark SQL Spark Streaming MLlib GraphX 集群管理器 受 ...
- JSP学习笔记(三):简单的Tomcat Web服务器
注意:每次对Tomcat配置文件进行修改后,必须重启Tomcat 在E盘的DATA文件夹中创建TomcatDemo文件夹,并将Tomcat安装路径下的webapps/ROOT中的WEB-INF文件夹复 ...
- JAVA WEB学习笔记(三):简单的基于Tomcat的Web页面
注意:每次对Tomcat配置文件进行修改后,必须重启Tomcat 在E盘的DATA文件夹中创建TomcatDemo文件夹,并将Tomcat安装路径下的webapps/ROOT中的WEB-INF文件夹复 ...
- Html学习笔记(二) 简单标签
标签的重点 标签的用途 标签在浏览器中的默认样式 <body>标签: 在网页上显示的内容 <p>标签: 添加段落 <hx>标签: 添加标题 标签一共有6个,h1.h ...
- Hibernate学习笔记-Hibernate HQL查询
Session是持久层操作的基础,相当于JDBC中的Connection,通过Session会话来保存.更新.查找数据.session是Hibernate运作的中心,对象的生命周期.事务的管理.数据库 ...
- SQLServer学习笔记<>相关子查询及复杂查询
二.查询缺少值的查询 在这里我们加入要查询2008年每一天的订单有多少?首先我们可以查询下订单表的订单日期在2008年的所有订单信息. 1 select distinct orderdate,coun ...
- Netty学习笔记(六) 简单的聊天室功能之WebSocket客户端开发实例
在之前的Netty相关学习笔记中,学习了如何去实现聊天室的服务段,这里我们来实现聊天室的客户端,聊天室的客户端使用的是Html5和WebSocket实现,下面我们继续学习. 创建客户端 接着第五个笔记 ...
随机推荐
- BZOJ4196 软件包管理器
Description Linux用户和OSX用户一定对软件包管理器不会陌生. 通过软件包管理器,你可以通过一行命令安装某一个软件包,然后软件包管理器会帮助你从软件源下载软件包,同时自动解决所有的依赖 ...
- USACO 3.2 ratios 高斯消元
题目原意很简单,就是解一个三元一次方程组 直接高斯消元解方程组,枚举最后一列的倍数(k) 注意double的精度,有很多细节需要处理 /* PROB:ratios LANG:C++ */ #inclu ...
- 中间件、MetaQ入门学习
目录 . 中间件技术 . MetaQ中间件 . MetaQ编程实践 1. 中间件技术 0x1: 中间件简介 中间件(Middleware)是提供系统软件和应用软件之间连接的软件,以便于软件各部件之间的 ...
- Java输入、输入、IO流 类层次关系梳理
本文主要关注在Java编程中涉及到的IO相关的类库.方法.以及对各个层次(抽线.接口继承)的流之间的关系进行梳理 相关学习资料 http://baike.baidu.com/view/1007958. ...
- Tomcat 404
原因:servlet没有配置正确 ,查看web.xml确认正确,以及自己的请求路径正确 在IE中提示"404"错误有以下三种情况 1.未部署Web应用 2.URL输入错误 排错方法 ...
- Put-Me-Down项目Postmortem
设想和目标 PMD是一款帮助低头族控制使用手机时间的APP,设想按照需求规格说明书内容实现功能,能将数据备份到服务器. 计划 初始计划我们是想将程序方面分为安卓和后台,主要是程序方面的工作.我们对项目 ...
- webform添加到webapi的支持
1.添加引用 添加对 System.Net.Http , System.Net.Http.Formatting , System.Web.Http , System.Web.Http.Common , ...
- java ssl https 连接详解 生成证书
我们先来了解一下什么理HTTPS 1. HTTPS概念 1)简介 HTTPS(全称:Hypertext Transfer Protocol over Secure Socket Layer),是以安全 ...
- ios开发 网络编程浅析(一)
iphone包含了很多框架和库,从底层的套接字到不同层次的封装,可以方便地给程序添加网络功能. (1)BSD套接字.最底层的套接字,这是Unix网络开发常用的API.如果从其他系统移植程序,而程序用的 ...
- zstu.4191: 无向图找环(dfs树 + 邻接表)
4191: 无向图找环 Time Limit: 5 Sec Memory Limit: 128 MB Submit: 117 Solved: 34 Description 给你一副无向图,每条边有 ...