mongodb如何对文档内数组进行过滤的方法步骤
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,本文介绍了mongodb如何对文档内数组进行过滤的方法步骤,分享给大家,具体如下:mongodb文档内包含数组,需要将数组中符合条件的数据过滤出来并返回结果集,可以用两种方式来查询group或filt
千家信息网最后更新 2026年11月02日mongodb如何对文档内数组进行过滤的方法步骤
本文介绍了mongodb如何对文档内数组进行过滤的方法步骤,分享给大家,具体如下:

mongodb文档内包含数组,需要将数组中符合条件的数据过滤出来并返回结果集,可以用两种方式来查询group或filter。
数据源:
{ "_id" : ObjectId("5bbcc0c9a74db9804e78a157"), "uid" : "1000001", "name" : "zhangsan", "addrs" : [ { "is_query" : "1", "city" : "北京" }, { "is_query" : "0", "city" : "上海" }, { "is_query" : "1", "city" : "深圳" } ]}{ "_id" : ObjectId("5bbcc167a74db9804e78a172"), "uid" : "1000002", "name" : "lisi", "addrs" : [ { "is_query" : "0", "city" : "北京" }, { "is_query" : "0", "city" : "上海" }, { "is_query" : "1", "city" : "深圳" } ]}要求查询指定uid下,addrs数组中只包含is_query等于1的结果集(0的不包含)。
查询语句:
方法一:使用$unwind将addrs数组打散,获取结果集后用$match筛选符合条件的数据,最后使用$group进行聚合获取最终结果集。
db.getCollection('user').aggregate( [ { $unwind: "$addrs" }, { $match : { "uid":"1000001", "addrs.is_query": "1" } }, { $group : { "_id" : "$uid", "addrs": { $push: "$addrs" } } } ])Result:
{ "_id" : "1000001", "addrs" : [ { "is_query" : "1", "city" : "北京" }, { "is_query" : "1", "city" : "深圳" } ]}方法二:使用$match过滤符合条件的根文档结果集,然后使用$project返回对应字段的同时,在addrs数组中使用$filter进行内部过滤,返回最终结果集
db.getCollection('user').aggregate( [ { $match : { "uid": "1000001" } }, { $project: { "uid": 1, "name": 1, "addrs": { $filter: { input: "$addrs", as: "item", cond: { $eq : ["$$item.is_query","1"] } } } } } ])Result:
{ "_id" : ObjectId("5bbcc0c9a74db9804e78a157"), "uid" : "1000001", "name" : "zhangsan", "addrs" : [ { "is_query" : "1", "city" : "北京" }, { "is_query" : "1", "city" : "深圳" } ]}相对于$group分组聚合返回结果集的方式,在当前查询要求下$filter显得更加优雅一些,也比较直接。当然如果包含统计操作,比如要求返回is_query等于1的数量,这时候$group就非常合适了。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
结果
数组
北京
深圳
查询
文档
方法
数据
条件
方式
上海
步骤
合适
优雅
内容
同时
字段
就是
数据源
数量
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
上海卓越科技互联网
互联网属科技
互联网科技深圳
圆梦互联网科技
互联网巨头反垄断金融科技
互联网科技社
网络科技有限互联网
科技制造互联网公司
以房互联网科技
互联网科技革命
西安互联网科技公司
广西互联网科技公司
长亮科技互联网金融
互联网科技英文翻译
恒生互联网科技业指数调整周期
上海科技产业互联网平台
领航科技大厦互联网公司
全球科技与互联网公司市值变化
好易买互联网科技
中国主要互联网科技公司
河南云网互联网络科技有限公司
苏州找大状互联网科技有限公司
科技互联网产品
赫美联合互联网科技
佰商互联网科技有限公司
甘肃拓世互联网科技有限公司
互联网科技公司的市场部门
互联网科技热点资讯
新兴科技互联网创新大赛颁奖典礼
银川新华互联网科技学校招聘