mongoose学习笔记3--简单查询1

简介: 简述 查询就是返回一个集合中的文档的子集 Mongoose 模型提供了   find、     findOne、   findById 三种方法用于文档查询。 为了方便后面课程的有效学习,我们先添加一些测试数据。

简述

查询就是返回一个集合中的文档的子集

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来查询文档。

目录
相关文章
|
1月前
egg.js 24.13sequelize模型-字段限制排序分页
egg.js 24.13sequelize模型-字段限制排序分页
24 1
egg.js 24.13sequelize模型-字段限制排序分页
|
5月前
|
NoSQL MongoDB
mongodb踩坑-Error: Cannot find module 'mongoose'
mongodb踩坑-Error: Cannot find module 'mongoose'
43 0
|
1月前
|
SQL 关系型数据库 MySQL
总结 vue3 的一些知识点:MySQL NULL 值处理
总结 vue3 的一些知识点:MySQL NULL 值处理
|
7月前
|
SQL JavaScript 关系型数据库
Sequelize操作MySQL基本用法1
Sequelize操作MySQL基本用法
|
6月前
|
SQL 关系型数据库 MySQL
总结vue3 的一些知识点:MySQL UPDATE 更新
总结vue3 的一些知识点:MySQL UPDATE 更新
34 0
|
7月前
|
SQL JavaScript 关系型数据库
node.js控制mysql的查询语句
node.js控制mysql的查询语句
47 0
|
8月前
|
前端开发 NoSQL MongoDB
Mongoose-增加和查询
本文的内容是基于 Mongoose 开篇继续延续的,需要将 mongoose 的环境搭建好,我这里就直接上的是进行操作 MongoDB 的代码。
63 0
|
8月前
|
前端开发
Mongoose-更新和删除
本文是紧接着 Mongoose 的增加与查询的下集,所以在这里废话不多说直接上内容。
53 0
|
8月前
|
NoSQL MongoDB 数据格式
express+mongoose无限级分类查询(后端)
express+mongoose无限级分类查询(后端)
46 0
|
10月前
|
NoSQL MongoDB
mongoose之bulkWrite
mongoose之bulkWrite
67 0

热门文章

最新文章