文档章节

分针网——每日分享:Mongoose 一些查询方法

起风了夏天
 起风了夏天
发布于 2017/07/13 10:18
字数 525
阅读 9
收藏 0

更多文章:www.f-z.cn

Mongoose 模型提供了 find, findOne, 和 findById 方法用于文档查询。

 

1. Model.find

 

Model.find(query, fields, options, callback)// fields 和 options 都是可选参数

 

简单查询

 

Model.find({ 'csser.com': 5 }, function (err, docs) { // docs 是查询的结果数组 });

 

只查询指定键的结果

 

Model.find({}, ['first', 'last'], function (err, docs) { // docs 此时只包含文档的部分键值})

 

2. Model.findOne

 

与 Model.find 相同,但只返回单个文档

Model.findOne({ age: 5}, function (err, doc){ // doc 是单个文档});

 

3. Model.findById

 

与 findOne 相同,但它接收文档的 _id 作为参数,返回单个文档。_id 可以是字符串或 ObjectId 对象。

Model.findById(obj._id, function (err, doc){ // doc 是单个文档});

 

4. Model.count

 

返回符合条件的文档数。

Model.count(conditions, callback);

 

5. Model.remove

 

删除符合条件的文档。

Model.remove(conditions, callback);

 

6. Model.distinct

 

查询符合条件的文档并返回根据键分组的结果。

Model.distinct(field, conditions, callback);

 

7. Model.where

 

当查询比较复杂时,用 where:

 

 

Model

.where('age').gte(25)

.where('tags').in(['movie', 'music', 'art'])

.select('name', 'age', 'tags')

.skip(20)

.limit(10)

.asc('age')

.slaveOk()

.hint({ age: 1, name: 1 })

.run(callback);

 

8. Model.$where

 

有时我们需要在 MongoDB中使用JavaScript表达式进行查询,这时可以用 find({$where : javascript}) 方式,$where 是一种快捷方式,并支持链式调用查询。

Model.$where('this.firstname === this.lastname').exec(callback)

 

9. Model.update

 

使用 update 子句更新符合指定条件的文档,更新数据在发送到数据库服务器之前会改变模型的类型。

 

 

var conditions = { name: 'borne' }

, update = { $inc: { visits: 1 }}

, options = { multi: true };

Model.update(conditions, update, options, callback)

 

注意:为了向后兼容,所有顶级更新键如果不是原子操作命名的,会统一被按 $set 操作处理,例如:

 

 

var query = { name: 'borne' };

Model.update(query, { name: 'jason borne' }, options, callback)

// 会被这样发送到数据库服务器

Model.update(query, { $set: { name: 'jason borne' }}, options, callback)

 

10. 查询 API

 

如果不提供回调函数,所有这些方法都返回 Query 对象,它们都可以被再次修改(比如增加选项、键等),直到调用 exec 方法。

 

 

var query = Model.find({});

query.where('field', 5);

query.limit(5);

query.skip(100);

query.exec(function (err, docs) {

// called when the `query.complete` or `query.error` are called

// internally

});

 

本文转载自:http://www.f-z.cn/id/274

起风了夏天
粉丝 1
博文 10
码字总数 23
作品 0
崇明
私信 提问
Node.js开发入门—用MongoDB改造LoginDemo

这次的示例基于之前的LoginDemo(见使用cookie保持登录),我们引入MongoDB来保存用户数据。要运行这个示例,前提是MongoDB数据要正常运行(见Node.js开发入门——MongoDB与Mongoose)。示例...

foruok
2015/08/19
0
0
Node.js开发入门——MongoDB与Mongoose

为了保存网站的用户数据和业务数据,通常需要一个数据库。MongoDB和Node.js特别般配,因为MongoDB是基于文档的非关系型数据库,文档是按BSON(JSON的轻量化二进制格式)存储的,增删改查等管...

foruok
2015/08/18
0
0
构建 Node.js 应用之持久化

原因是任何一个开发人员可以选择一个数据库后像不要钱的一样会选择另一个数据库,所以足以说明我根据我的需求选择MongoDB,至于为什么我将会在其他时间解释Why。在这儿,我将假设你也同样对M...

oschina
2012/12/30
2.9K
0
细嚼慢咽 Mongoose 5

此文已由作者黄锴授权网易云社区发布。 欢迎访问网易云社区,了解更多网易技术产品运营经验。 前言 由于Mongoose一直没有中文文档,加上现在市面上充斥着太多“快速上手”,很多中文文档都只...

网易云
2018/11/01
0
0
mongodb: 关于Mongoose的geoNear方法的使用

文章: Selenium自动化测试LOGO(临时文章) mongodb: 关于Mongoose的geoNear方法的使用 Protobuf在go和java数据交互 每日一博 | 如何优雅的控制goroutine的数量 sdk: 被Google Play下架刷爆朋...

d_watson
2016/05/28
57
0

没有更多内容

加载失败,请刷新页面

加载更多

HeyUI组件库按需加载功能上线,盘点HeyUI组件库有哪些独特功能?

HeyUI组件库 如果你还不了解heyui组件库,欢迎来我们的官网或者github参观。 官网 github 当然,如果能给我们一颗✨✨✨,那是最赞的了! 按需加载 当heyui组件库的组件越来越多的时候,按需...

vvpvvp
14分钟前
2
0
Dockerfile文件详解

Dockerfile文件详解 什么是dockerfile? Dockerfile是一个包含用于组合映像的命令的文本文档。可以使用在命令行中调用任何命令。 Docker通过读取Dockerfile中的指令自动生成映像。 docker bui...

Jeam_
27分钟前
0
0
阿里云PolarDB发布重大更新 支持Oracle等数据库一键迁移上云

5月21日,阿里云PolarDB发布重大更新,提供传统数据库一键迁移上云能力,可以帮助企业将线下的MySQL、PostgreSQL和Oracle等数据库轻松上云,最快数小时内迁移完成。据估算,云上成本不到传统...

zhaowei121
35分钟前
0
0
在数据数据探索过程中的一些常用操作

###pandas在做数据探索时,分组统计均值和中位数参考资料:http://www.cnblogs.com/nxld/p/6058591.htmlhttp://python.jobbole.com/85742/按字典重新赋值,可以直接使用pandas中的repla...

KYO4321
37分钟前
0
0
好程序员分享干货 弹性分布式数据集RDD

一、RDD定义 RDD(Resilient Distributed Dataset)叫做分布式数据集,是Spark中最基本的数据抽象,它代表一个不可变(数据和元数据)、可分区、里面的元素可并行计算的集合。其特点在于自动容...

好程序员IT
39分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部