MongoDB Aggregation Match
2017-10-12 00:00
344 查看
摘要: MongoDB聚合查询之match
在Mongodb的聚合查询中,有一个对我们的查询文档进行条件过滤的操作,这个操作就是match,在match操作中,我们可以使用更精确的查询条件来找到我们的目标文档。
然后使用聚合查询的match操作找出年龄在20岁以上(不包含20岁)的user
Matching by ObjectId When Using Raw Query or Aggregation
Moongoose aggregate $match does not match id's
How to use aggregrate in mongodb to $match _id
Enjoy IT
在Mongodb的聚合查询中,有一个对我们的查询文档进行条件过滤的操作,这个操作就是match,在match操作中,我们可以使用更精确的查询条件来找到我们的目标文档。
How to use
插入几条数据到User表中(所有示例均使用mongoose进行操作数据库,以下不作说明)const mongoose = require('mongoose'), User = mongoose.model('user'); User.insertMany([{ "age": 18, "name": "user1", "sex": "female", }, { "age": 20, "name": "user2", "sex": "male", }, { "age": 22, "name": "user3", "sex": "female", }, { "age": 28, "name": "user4", "sex": "male", }])
然后使用聚合查询的match操作找出年龄在20岁以上(不包含20岁)的user
User.aggregate([{ $match: { age: { $gt: 20 } } }]).exec((err, users) => { if (err) { // process error } else { // process users } });
易错点
在进行_id匹配时要使用ObhectId来进行匹配,而不是普通的字符串_id来匹配错误示例:
User.aggregate([{ $match: { _id: {$in: ['592eb5c443d5c897d8282c88']}, } }]).exec((err, user) => { console.log(user.length);// 0 });
正确示例
const mongoose = require('mongoose'), User = mongoose.model('user'); User.aggregate([{ $match: { _id: {$in: [mongoose.Types.ObjectId('592eb5c443d5c897d8282c88')]},// 注意,是这里做了修改 } }]).exec((err, user) => { console.log(user.length);// 1 });
相关文档及问题
官方文档Matching by ObjectId When Using Raw Query or Aggregation
Moongoose aggregate $match does not match id's
How to use aggregrate in mongodb to $match _id
Enjoy IT
相关文章推荐
- https://docs.mongodb.org/manual/reference/operator/aggregation/unwind/#examples
- mongodb 中 Aggregation 的管道和分片集合( Pipeline and Sharded Collections)
- Project with Match in aggregate not working in mongodb
- MongoDB Aggregation Pipeline
- mongodb 语句和SQL语句对应(SQL to Aggregation Mapping Chart)
- MongoDB查询转对象是出错Element '_id' does not match any field or property of class
- MongoDB 聚合管道(Aggregation Pipeline)
- mongodb中的aggregation的使用
- [教程]MongoDB 从入门到进阶 (aggregation数据库状态)
- Spring Data MongoDB 六:进阶Aggregation操作(上)
- mongodb使用aggregate、group、match实现mysql中的having(count(1)>1)的功能
- 用java连接mongodb并执行$match和$group结合的聚合函数的实例。
- MongoDB 聚合管道(Aggregation Pipeline)
- MongoDB Aggregation lookup
- springdata mongodb 查询二(Aggregation)
- mongodb "Element '{0}' does not match any field or property of class" 异常的解决方法
- mongodb的聚合函数的$sort 方法运用 和$sort + $match 顺序优化。
- 使用MongoDB中Aggregation统计数据
- MongoDB中强大的统计框架Aggregation使用实例解析
- mongodb Aggregation Framework 简单记录