提前搜索查詢我想在其中可以有最多5個參數,搜索查詢,但它可以有任意數量則params的從下面5貓鼬:使用MongoDB的
01.name_or_number
02.from_date
03.to_date
04.is_validated
05.is_premium
我可以查詢如下。
var query = {$or:[
{'name':nameOrNumber},
{'number': nameOrNumber}
]};
我想做出這樣的查詢應該只有有價值的領域。
類似於如果用戶選擇from_date和to_date和其他3個字段爲空,則查詢應僅使用2個日期參數進行搜索。
我可以通過if/else進行多個查詢,但是我想使單個查詢可以做到這一點。
案例1: - 用戶可使用name_or_number
案例2搜索: - 用戶可以搜索使用FROM_DATE和/或TO_DATE
情況3: - 用戶可以同時使用name_or_number和日期
搜索情況4: - 用戶可以搜索使用is_validated和/或is_premium
案例5: - 用戶可與所有5個PARAMS
更多的情況下搜索...
這可能嗎?如果是,如何?
謝謝
所以'$或'基本上需要一個參數的「list」或「array」。它(像整個MongoDB查詢DSL)實際上只是一個普通的JavaScript對象或數組。只是操縱對象。根據需要將新項目推送到陣列上。 –
@ Neil ......我幾天前開始學習它。是否有可能通過代碼或參考向我展示。 – Hitendra
學習什麼? JavaScript的?這是我試圖指示你實現的基本列表操作。這裏沒什麼特別的,只是簡單的數據結構。 –