Panache MongoDB: Return 仅匹配数组中的数据
Panache MongoDB: Return only matching data from Array
是否可以根据描述中的语言 属性 和 subTypes.descriptions 对实体应用过滤器以过滤以下集合条目?
{
"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 的列表方法上应用查询。这可能吗?
您可以通过本机 MongoDB 查询(因此是标准 JSON 查询)在 PanacheMongoEntity 的 list
方法上使用任何可能的 MongoDB 查询。
MongoDB 允许 query an array of document, and support projection on the array element.
MongoDB 通过 find().project()
方法使用 Panache 投影仅适用于场投影,因此您需要直接在集合上使用本机 MongoDB 查询,您不会能够使用 list
方法。
像这样的东西应该可以工作:
Entity.mongoCollection().find("{//your query}", "{subTypes.descriptions:{$elemMatch: {lang:'en'}}}");
是否可以根据描述中的语言 属性 和 subTypes.descriptions 对实体应用过滤器以过滤以下集合条目?
{
"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 的列表方法上应用查询。这可能吗?
您可以通过本机 MongoDB 查询(因此是标准 JSON 查询)在 PanacheMongoEntity 的 list
方法上使用任何可能的 MongoDB 查询。
MongoDB 允许 query an array of document, and support projection on the array element.
MongoDB 通过 find().project()
方法使用 Panache 投影仅适用于场投影,因此您需要直接在集合上使用本机 MongoDB 查询,您不会能够使用 list
方法。
像这样的东西应该可以工作:
Entity.mongoCollection().find("{//your query}", "{subTypes.descriptions:{$elemMatch: {lang:'en'}}}");