Java Panache MongoDB:仅从阵列返回匹配数据

Java Panache MongoDB:仅从阵列返回匹配数据,java,mongodb,quarkus,quarkus-panache,Java,Mongodb,Quarkus,Quarkus Panache,是否可以对实体应用筛选器,以便根据descriptions和subTypes.descriptions中的lang属性筛选以下集合条目 { "id": "609a85120c133e33e4cc3ed7", "code": "REST", "descriptions": [ { "lang": "pt&q

是否可以对实体应用筛选器,以便根据descriptions和subTypes.descriptions中的lang属性筛选以下集合条目

{
    "id": "609a85120c133e33e4cc3ed7",
    "code": "REST",
    "descriptions": [
        {
            "lang": "pt",
            "description": "Restaurante"
        },
        {
            "lang": "en",
            "description": "Restaurant"
        }
    ],
    "subTypes": [
        {
            "code": "TIP",
            "descriptions": [
                {
                    "lang": "pt",
                    "description": "Restaurante Tipico"
                },
                {
                    "lang": "en",
                    "description": "Typical Restaurante"
                }
            ]
        },
        {
            "code": "HMB",
            "descriptions": [
                {
                    "lang": "pt",
                    "description": "Restaurante Hamburger"
                },
                {
                    "lang": "en",
                    "description": "Burger"
                }
            ]
        }
    ]
}

我想在PanacomengoEntity的list方法上应用查询。这可能吗?

您可以通过本机MongoDB查询(即标准的JSON查询)在PanacomengoEntity的
列表
方法上使用MongoDB上可能的任何查询

MongoDB允许和支持

通过
find().project()
方法使用Panache投影的MongoDB只适用于字段投影,因此您需要直接在集合上使用本机MongoDB查询,而不能使用
list
方法

像这样的方法应该会奏效:

Entity.mongoCollection().find("{//your query}", "{subTypes.descriptions:{$elemMatch: {lang:'en'}}}");

您可以通过本机MongoDB查询(即标准JSON查询)在PanacomengoEntity的
list
方法上使用MongoDB上可能的任何查询

MongoDB允许和支持

通过
find().project()
方法使用Panache投影的MongoDB只适用于字段投影,因此您需要直接在集合上使用本机MongoDB查询,而不能使用
list
方法

像这样的方法应该会奏效:

Entity.mongoCollection().find("{//your query}", "{subTypes.descriptions:{$elemMatch: {lang:'en'}}}");

非常有用。实际上,我已经按照这个建议重构了一些额外的实现。谢谢非常有用。实际上,我已经按照这个建议重构了一些额外的实现。谢谢