资讯专栏INFORMATION COLUMN

mongoose常用方法(查询篇)

weknow619 / 810人阅读

摘要:可以是字符串或对象。与相同,但只返回符合条件的第一个文档批注参考文档基础入门

条件

$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个元素

# find()

## find({$where : "this.name == "a""})

Model.find(conditions, [fields], [options], [callback])

注:conditions 查询条件、fields 想要查询的字段、options 、callback 回调函数
示例: 查询用户表下面名字为张三的从第二条开始的后两条文档且只需按时姓名、性别、居住地址、创建时间信息并按创建时间倒叙显示

//对象写法
userModel.find({"name":"张三"},{"name":1,"sex":1,"region":1,"createBy":1,"_id":0},{ limit:2, skip:1, sort:"-createBy.createTime"})
//链式写法
userModel.find({"name":"张三"},{"name":1,"sex":1,"region":1,"createBy":1,"_id":0}).skip(7).limit(2).sort({"createBy.createTime" : -1})

返回结果:

## find({$where : "this.name == "a""})

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

## 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);

## 查询非空字段

Model.find(conditions:{$exists:true})
Model.find(conditions:{$ne:null})

## 分页查询

Model.find(conditions).skip(pageTotal * pageNum).limit(pageTotal).sort({"_id":-1}).exec(cb);

注:condition 查询条件、pageTotal为每页显示条数、pageNum为分页数量、cb为回调函数

## 模糊查询

userModel.find({"name" : {$regex:"大虾"}})

userModel.find({"name" : /大虾/ }})

返回结果:

# findById()
Model.findById(conditions, [fields], [options], [callback])

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

# findOne()
Model.find(conditions, [fields], [options], [callback])

与 Model.find 相同,但只返回符合条件的第一个文档

批注:参考文档Mongoose基础入门

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/19336.html

相关文章

  • 在Node中基于Mongoose对MongoDB进行增删查改(CRUD)操作(一)

    摘要:如图连接成功后,显示你的数据库,在这个节目可以对数据库进行操作。如图安装与加载首先假定你已经安装了,命令行工具输入在使用的文件中即可。创建读取更新删除单值读取上文是在中基于对进行增删查改操作的简单介绍,以后会有进阶的文章。 关键词:mongodb安装 mongoose使用 robomongo mongoose的CRUD操作 mongoose的查询,增加,修改,删除 工具介绍 Mon...

    lemon 评论0 收藏0
  • 在Node中基于Mongoose对MongoDB进行增删查改(CRUD)操作(一)

    摘要:如图连接成功后,显示你的数据库,在这个节目可以对数据库进行操作。如图安装与加载首先假定你已经安装了,命令行工具输入在使用的文件中即可。创建读取更新删除单值读取上文是在中基于对进行增删查改操作的简单介绍,以后会有进阶的文章。 关键词:mongodb安装 mongoose使用 robomongo mongoose的CRUD操作 mongoose的查询,增加,修改,删除 工具介绍 Mon...

    SillyMonkey 评论0 收藏0
  • Mongoose增查改删学习笔记

    摘要:查询条件控制返回的字段控制选项回调函数。改查询条件需要修改的数据,不能修改主键控制选项回调函数,返回的是受影响的行数。执行查询,回调函数。使用链式语句时,可以在之后接执行查询,并指定回调函数。 初学Node.js接触到MongoDB数据库,阅读资料中推荐的都是Mongoose模块,可以更加方便的对数据库进行操作,便开始接触Mongoose。在学习时碰到许多基础问题,查阅了许多资料理来理...

    lookSomeone 评论0 收藏0
  • Nodejs+Express学习二(Mongoose基础了解)

    摘要:学习注定少不了与数据库打交道,而和可以说是绝配,这篇主要是简单介绍这个模块。通过创建查询是数据库中运用最多也是最麻烦的地方,这里对解读的并不完善,仅仅是自己的一点领悟而已。 学习Node注定少不了与数据库打交道,而MongoDB和Node可以说是绝配,这篇主要是简单介绍Mongoose这个模块。由于本人也是边学边写的这篇文章,绝对会有新手的味道,请大神看到这里就表往下看了。 名词介绍稍...

    617035918 评论0 收藏0
  • Nodejs+Express学习二(Mongoose基础了解)

    摘要:学习注定少不了与数据库打交道,而和可以说是绝配,这篇主要是简单介绍这个模块。通过创建查询是数据库中运用最多也是最麻烦的地方,这里对解读的并不完善,仅仅是自己的一点领悟而已。 学习Node注定少不了与数据库打交道,而MongoDB和Node可以说是绝配,这篇主要是简单介绍Mongoose这个模块。由于本人也是边学边写的这篇文章,绝对会有新手的味道,请大神看到这里就表往下看了。 名词介绍稍...

    LiangJ 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<