如何使用spring数据mongodb查询具有无效引用的文档

时间:2017-04-18 02:27:10

标签: java spring mongodb spring-boot spring-data-mongodb

假设我们有集合A,它通过名为“bref”的字段引用集合B,该字段是来自集合B的ObjectId数组。对于集合A,我感兴趣的有4种可能的情况:

  1. 至少有一个bref数组项指向B中的有效文档。
  2. bref数组为空。
  3. bref数组不存在(因此为null)。
  4. bref数组中没有任何项指向有效的B文档。
  5. 在spring-data中,使用MongoRepository,我能够解决上面的情况,如下所示:

    1. getByBrefLike(ObjectId brefId,Pageable pageable)
    2. getByBrefIsNullOrBrefIsLessThanEqual(String [] emptyString,Pageable pageable)
    3. getByBrefIsNullOrBrefIsLessThanEqual(String [] emptyString,Pageable pageable)
    4. 尚未解决。
    5. 问题:

      1. 是否有可能使用像我在上面示例中所做的那样使用spring-data mongodb存储库来检测A中指向B的不存在引用的文档?
      2. 您如何防止这种情况发生? (是否可以定义一些约束条件)?
      3. 如果无法使用弹簧数据解决方案,mongodb解决方案会是什么样的?

1 个答案:

答案 0 :(得分:0)

试试这个

Pageable<T> findByBrefNotIn(List<ObjectId> brefs, Pageable, pageable)