假設集合有 3 個檔案。例如:
{“檔案”:“001”,“請求型別”:“A”,“有效”:“真”},
{“檔案”:“002”,“請求型別”:“A”,“有效”:“假”},
{“檔案”:“003”,“請求型別”:“B”}
每個檔案有 2 個屬性“requestType”,“document”強制。“有效”屬性是可選的
我想要達到的目標:
為將檢查的查詢撰寫條件:
1->什么是檔案的requestType
如果 requestType 是“A”,我需要檢查有效屬性是否為真。
否則也獲取其他“requestType”檔案。
回應的最終結果應該是:
{“檔案”:“001”,“請求型別”:“A”,“有效”:“真”},
{“檔案”:“003”,“請求型別”:“B”}
我嘗試了什么:
Criteria criteria = new Criteria();
//others criteria are there as well thats why used orOperator
criteria.orOperator(
Criteria.where("requestType").is("A"),
Criteria.where("valid").is(true)
);
final Query query = new Query();
query.addCriteria(criteria);
它提供的回應為:{“document”:“001”,“requestType”:“A”,“valid”:“true”},
但我在回應中也需要 {"document" : "003", "requestType" : "B"}
uj5u.com熱心網友回復:
看起來您正在運行的查詢需要一些更新,目前查詢進行{$or:[{ requestType:A}, {valid:true}]}但它應該是:{$or:[$and:[{ requestType:A}, {valid:true}],"valid":{$ne:"A"}]}
criteria.orOperator(
Criteria.where("requestType").is("A").andOperator(Criteria.where("valid").is(true)),
Criteria.where("requestType").ne("A")
);
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/515851.html
上一篇:從初始陣列生成所有子陣列的演算法
