2012-07-27 131 views
0

*蒙戈新手在這裏(蒙戈使用C#驅動程序在Windows上)MongoDB的查詢結果排序(數字範圍查詢)

嗨,我評估蒙戈用於應用數字維度的組合。我有數百個數字字段,並創建一個布爾查詢(我廣泛使用Lucene,Solr等,因此赦免術語)。在Solr的結果由相關沿多個維度即最接近的匹配命令,隨後是下一個最接近的,等等....

例如:使用

Doc1: 
- NumField 1 : 9.9 
- NumField 2: 8.2 

Doc2: 
- NumField 1 : 5.9 
- NumField 2: 8.9 


**Query** 
- NumField 1: Between 7 & 10 
- NumField 2: Between 8 & 10 

I would want Doc1 to show up before Doc2. 

查詢蒙戈類似構造使我得到的結果沒有看起來相關的順序。有什麼辦法可以通過「相關性」來排序查詢結果嗎?

p.s.我知道總是可以從我的客戶端中的光標處得到結果,但如果可能的話,我想盡可能在​​服務器端完成。

回答

1

Mongo沒有任何基於分數的排序,它會按照索引順序返回文檔(假設您的查詢命中索引)。

你最好的選擇可能是在客戶端排序。如果你確實想在Mongo中使用它,你可以使用map/reduce功能在文檔上打分,然後查詢輸出集合並按分數排序。這可能不是一個好主意。

+0

+1,分享爲什麼地圖/減少評分是一個壞主意? – Mikos 2012-07-27 23:09:16

+2

@Mikos:因爲它超級慢。 – 2012-07-27 23:30:58