首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >根据条件排除嵌套文档

根据条件排除嵌套文档
EN

Stack Overflow用户
提问于 2019-03-26 16:58:56
回答 1查看 126关注 0票数 1

我有一份如下形式的文件

代码语言:javascript
复制
{
  "_id": "5c9a53b348a0ac000140b5f9",
  "e": [
    {
      "_id": "d6c74cd5-5808-4b0c-b857-57ddbcc72ce5",
      "isDeleted": true
    },
    {
      "_id": "d6c74cd5-5808-4b0c-b857-57ddbcc72ce6",
      "isDeleted": false
    }
  ]
}

每个文档上都有一个元素列表,每个元素都可能被删除,也可能不被删除。默认情况下,我不想返回已删除的数据。现在,我在服务器端过滤它们,但这仍然意味着很多数据被不必要地传输。有可能排除数据库中的这些数据吗?

我已经看过$elemMatch了,但是它只返回一个值,所以它看起来不是适合这个任务的工具。

是否有一种方法可以使用嵌套文档数组来投影文档,以只包括那些符合特定条件的子文档?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-26 17:08:27

您可以在这里使用$filter聚合

代码语言:javascript
复制
db.collection.aggregate([
  { "$addFields": {
    "e": {
      "$filter": {
        "input": "$e"
        "cond": { "$eq": ["$$this.isDeleted", true] }
      }
    }
  }}
])
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55362514

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档