查询MongoDB使用Micronaut数据嵌入文档
使用Micronaut数据执行以下操作,
- 以根据类别ID和子类别更新子类别项目
- ID和子类别ID更新子类别项目 ID
- 基于类别ID和子删除子类别项 类别ID
I具有以下数据结构,
{
"id": "625a8d1a23c8feb3234fbf28",
"name": "Category 1",
"description": "Category 1 description",
"subCategory": [{
"id": "625a8d6fe0e3cff6e8a3b795",
"name": "Sub Category 1",
"description": "Sub Category 1 description"
},
{
"id": "625a8d782672979b1482f5ca",
"name": "Sub Category 2",
"description": "Sub Category 2 description"
}
]
}
Micronaut中有一个自定义查询构建器,如下所述 https://micronaut-projects.github.io/micronaut-data/latest/guide/#mongocustomqueries 和
@Introspected
public record SubCategorySpecification() {
public static PredicateSpecification<Category> categoryAndSubCategoryIdEquals(ObjectId categoryId, ObjectId subCategoryId) {
return (root,criteriaBuilder) -> {
criteriaBuilder.equal(root.get("id"), categoryId);
return criteriaBuilder.and(criteriaBuilder.equal(root.get("subCategory.id"), subCategoryId));
};
}
}
我尝试了上述代码异常AS 无法在不存在的属性上查询实体[类别]:subcategory.id
,不确定如何使用 @ mongofindquery
使用自定义查询编写自定义查询。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可能需要将子类别定义为嵌入式以正确识别。
可以定义自定义查询:
以类似的方式,您可以使用
@mongoupdatequery
和@mongodeletequery
。有关语法,请查看官方MongoDB文档。
You might need to have the subcategory defined as embedded to be properly recognized.
It's possible to define a custom query:
In a similar way, you can use
@MongoUpdateQuery
and@MongoDeleteQuery
.For the syntax check official MongoDB documentation.