0

是否可以根据描述和 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"
                }
            ]
        }
    ]
}

我想在 PanacheMongoEntity 的列表方法上应用查询。这可能吗?

4

1 回答 1

2

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

MongoDB 允许查询文档数组,并支持对数组元素的投影

通过该方法使用 Panache 投影的 MongoDBfind().project()仅适用于字段投影,因此您需要直接在集合上使用本机 MongoDB 查询,您将无法使用该list方法。

像这样的东西应该工作:

Entity.mongoCollection().find("{//your query}", "{subTypes.descriptions:{$elemMatch: {lang:'en'}}}");
于 2021-05-12T08:00:45.013 回答