Spring DATA MongoDB @DBref查詢,or和and聯合查詢


@DBref文檔關聯,在按該類型查詢的時候,在字段名后加上關聯表的字段名即可,如:

Criteria.where("bloggroup.$id"),

$id代表關聯表的oid字段。

 

or和and聯合查詢

比如查詢 (A = 1 and b = 2 )or (A = 3 and b =4),or的數量不確定,

那么采用定義一個Criteria數組,將條件組記入數組中,然后將數組指定給orCriteria方法。

@Override
public List<Blog> find(List<GroupAttention> groupattentions) {
  Query query = new Query();
  Criteria criteria = new Criteria();
  Criteria[] criterialist = new Criteria[groupattentions.size()];
  for(int i=0;i<groupattentions.size();i++){
    Criteria criteriaand = new Criteria();
    criteriaand.andOperator(Criteria.where("bloggroup.$id").is(new ObjectId(groupattentions.get(i).getGroupid())).and("bloglevel").gte(groupattentions.get(i).getGrouplevel()));
    criterialist[i] = criteriaand;
  }
  criteria.orOperator(criterialist);
  query.addCriteria(criteria);
  return mongoTemplateDataBase.find(query, Blog.class);
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM