【发布时间】:2017-09-13 17:26:47
【问题描述】:
假设我们有一个集合 A,它通过一个名为“bref”的字段引用集合 B,该字段是集合 B 中的 ObjectId 的数组。对于集合 A,我感兴趣的可能有 4 种情况:
- 至少一个 bref 数组项指向来自 B 的有效文档。
- bref 数组为空。
- bref 数组不存在(因此为空)。
- bref 数组中的所有项目均未指向有效的 B 文档。
在 spring-data 中,使用 MongoRepository,我能够从上面解决如下情况:
- getByBrefLike(ObjectId brefId, Pageable pageable)
- getByBrefIsNullOrBrefIsLessThanEqual(String[] emptyString, Pageable pageable)
- getByBrefIsNullOrBrefIsLessThanEqual(String[] emptyString, Pageable pageable)
- 尚未解决。
问题:
- 是否可以像我在上面的示例中那样使用 spring-data mongodb 存储库来检测 A 中指向 B 中不存在的引用的文档?
- 您将如何防止这种情况发生? (是否可以定义一些约束)?
- 如果无法使用 spring-data 解决方案,那么 mongodb 解决方案会是什么样子?
【问题讨论】:
标签: java spring mongodb spring-boot spring-data-mongodb