1
我正在根據多個參數生成一個複雜的mongo查詢。標準的一個,我想和標準輔助類是:MongoTemplate標準查詢
{"field1": {$exists: true, $ne: false}}
我試圖使它:
Criteria.where("field1").is(Criteria.where("$ne").is(false).and("$exists").is(true))
但它產生
{ "field1" : { $java : [email protected] }
所以如何實現我需要的確切查詢? 我不能硬編碼的查詢字符串,因爲這些類型criteions是動態生成field1的字段N ...,然後用$或組合:
statusCriteria = statusCriteria.orOperator(criterias.toArray(new Criteria[criterias.size()]));
產生以下塊{ 「$和」:[{ 「字段」:{ 「$存在」:真}},{ 「字段」:{「$ NE 「:false}}]}這並不完全是我需要的,但從邏輯上講它是。由於「場地」翻倍,會不會導致性能問題? – Aeteros
@Aterteros根本沒有性能問題。從[docs](https://docs.mongodb.org/manual/reference/operator/query/and/)中,當指定逗號分隔的表達式列表時,MongoDB提供隱式的AND操作。當需要在多個表達式中指定相同的字段或運算符時,使用帶'$和'運算符的顯式'AND'是必需的。 – chridam