如何从mongodb中的对象数组获取公共属性

阿卡什(Akash Salunkhe)

以下是样本文件

[
  {
    "name": "john"
    "attribute":[
        {
            nameAttr: "abc"
            tagAttr: "zxs"
            
        },
        {
            nameAttr: "asd"
            tagAttr: "zxs"
            
        },
        {
            nameAttr: "lll"
            tagAttr: "zxs"
            
        },
        ]
  },
  {
    "name": "john"
    "attribute":[
        {
            nameAttr: "abc"
            tagAttr: "zxs"
            
        },
        {
            nameAttr: "sss"
            tagAttr: "zxs"
            
        },
        {
            nameAttr: "asd"
            tagAttr: "zxs"
            
        },
        ]
  },
]

我想将所有常见的nameAttr输出都输出为[“ abc”,“ asd”],因为它们在两个文档中都是常见的,所以我只能使用project来投影nameAttr,但是不知道如何继续进行db.collection.aggregate([

{
    $project: {
      "attribute.nameAttr": 1,
      
    }
  }
])
米克尔

您可以使用$ group将所有属性名称收集到一个数组数组中,然后将$ reduce$ setIntersection一起使用以获取通用属性名称

db.collection.aggregate([
    {
        $group: {
            _id: null,
            attributes: { $push: "$attribute.nameAttr" }
        }
    },
    {
        $project: {
            commonAttributes: {
                $reduce: {
                    input: "$attributes",
                    initialValue: { $arrayElemAt: [ "$attributes", 0 ] },
                    in: { $setIntersection: [ "$$value", "$$this" ] }
                }
            }
        }
    }
])

蒙哥运动场

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从数组中删除具有公共属性的对象

来自分类Dev

如何使用LINQ从上下文中获取具有公共属性的对象数

来自分类Dev

基于公共属性合并2个json数组对象

来自分类Dev

基于公共属性合并2个json数组对象

来自分类Dev

C# - 获取列表中的 3 个最低值,由列表中对象的公共属性衡量

来自分类Dev

如何在swift4中创建公共属性

来自分类Dev

如何汇总公共属性值的结果?

来自分类Dev

使用c#获取两个不同对象的公共属性

来自分类Dev

如何使用与其他 JSON 对象的一个公共属性来获取一个 JSON 的特定属性?

来自分类Dev

PostgreSQL 11.2通过单个表中的公共属性对对象进行分组

来自分类Dev

将嵌套对象中的值与公共属性组合在一起

来自分类Dev

如何将一个类的所有公共属性获取为json?

来自分类Dev

在Json中映射具有公共属性和动态名称的数组

来自分类Dev

用户控件中gridview列的公共属性,以从主表单获取价值

来自分类Dev

用户控件中gridview列的公共属性,以从主表单获取价值

来自分类Dev

如何从对象数组中获取属性?

来自分类Dev

Java通过公共属性比较不同的对象

来自分类Dev

获取类的公共属性而不创建其实例?

来自分类Dev

接口如何公开实现类中不存在的公共属性/方法?

来自分类Dev

接口如何公开实现类中不存在的公共属性/方法?

来自分类Dev

如何在模型的类行为公共属性中处理数据?(Yii2)

来自分类Dev

如何创建仅包含类型联合中的公共属性的类型?

来自分类Dev

如何选择顶点共享公共属性的边属性?

来自分类Dev

如何获取公共字段/属性名称的数组?

来自分类Dev

如何基于公共属性加入两个列表

来自分类Dev

如何从嵌套的内容页面访问母版页公共属性

来自分类Dev

如何使 TableEntity 序列化非公共属性?

来自分类Dev

遍历模型中的所有公共属性

来自分类Dev

在JavaScript中访问C#公共属性

Related 相关文章

  1. 1

    从数组中删除具有公共属性的对象

  2. 2

    如何使用LINQ从上下文中获取具有公共属性的对象数

  3. 3

    基于公共属性合并2个json数组对象

  4. 4

    基于公共属性合并2个json数组对象

  5. 5

    C# - 获取列表中的 3 个最低值,由列表中对象的公共属性衡量

  6. 6

    如何在swift4中创建公共属性

  7. 7

    如何汇总公共属性值的结果?

  8. 8

    使用c#获取两个不同对象的公共属性

  9. 9

    如何使用与其他 JSON 对象的一个公共属性来获取一个 JSON 的特定属性?

  10. 10

    PostgreSQL 11.2通过单个表中的公共属性对对象进行分组

  11. 11

    将嵌套对象中的值与公共属性组合在一起

  12. 12

    如何将一个类的所有公共属性获取为json?

  13. 13

    在Json中映射具有公共属性和动态名称的数组

  14. 14

    用户控件中gridview列的公共属性,以从主表单获取价值

  15. 15

    用户控件中gridview列的公共属性,以从主表单获取价值

  16. 16

    如何从对象数组中获取属性?

  17. 17

    Java通过公共属性比较不同的对象

  18. 18

    获取类的公共属性而不创建其实例?

  19. 19

    接口如何公开实现类中不存在的公共属性/方法?

  20. 20

    接口如何公开实现类中不存在的公共属性/方法?

  21. 21

    如何在模型的类行为公共属性中处理数据?(Yii2)

  22. 22

    如何创建仅包含类型联合中的公共属性的类型?

  23. 23

    如何选择顶点共享公共属性的边属性?

  24. 24

    如何获取公共字段/属性名称的数组?

  25. 25

    如何基于公共属性加入两个列表

  26. 26

    如何从嵌套的内容页面访问母版页公共属性

  27. 27

    如何使 TableEntity 序列化非公共属性?

  28. 28

    遍历模型中的所有公共属性

  29. 29

    在JavaScript中访问C#公共属性

热门标签

归档