我是從關係數據庫MongoDB的改變墊層數據庫的過程中,我需要「重建」通過MongoDB的查詢相同的語義。總而言之,這是怎麼回事微細,爲一兩件事例外:SQL最大()函數:的MongoDB相當於SQL的最大()
SELECT * FROM my_table
WHERE (GREATEST(FIELD_A, FIELD_B, FIELD_C, FIELD_D)
BETWEEN some_value AND some_value)
AND FIELD_E = another_value;
我似乎無法找到一個相當於這個GREATEST()函數。我知道可以通過使用$ cond操作符來實現類似的功能,但由於GREATEST()函數在找到4個值中的最大值,所以這將是很多條件。有沒有其他的方式來實現這一點?我查看了聚合框架和mapReduce,但我似乎無法在聚合框架中找到任何直接相似的東西,並且我很難理解mapReduce框架。
這甚至有可能實現嗎?我會假設答案是肯定的,但我似乎無法找到合理的等效方式。
應當注意的是,最大的不是SQL運算符但實際上是一個oracle運算符,它不是標準的 – Sammaye
@Sammaye你在這裏絕對正確。然而,儘管最大()不是標準的一部分,但關係數據庫從我頭頂開始支持它(oracle,mysql,postgresql,sqlite(儘管在名字MAX下))是很常見的。 – Bendik
這兩者並不完全相同,但是獲得最大值的簡單方法是對字段中的結果DESC進行排序 – Sammaye