假設我有以下結構MongoDB的最佳陣列匹配
[{
name: 'John',
tags: ['unix','databases']
},
{
name: 'Jane',
tags: ['excel', 'power-point','word', 'outlook']
},
{
name: 'Smith',
tags: ['databases', 'linux', 'android']
}]
,我要尋找的人['databases','servers','c++']
我想要一個查詢,這將給我的兩個最好的比賽是史密斯和約翰每場比賽一場。
這種感覺類似於具有兩個術語向量,並找到餘弦產物http://en.wikipedia.org/wiki/Vector_space_model
P.S.
我意識到我可能可以做一個$的,然後計算在我的程序(用Java編寫的)類似的術語數量,但有一種方式來獲得從蒙戈本身
告訴我,如果我得到這個權利。 我使用as:tag:「」名稱:[<數組名稱>]創建集合,然後獲取我想要的所有標籤的名稱,然後找到最佳匹配項? –
更新了我的答案,請看看 – Devesh
明白了,但我的問題是後來的處理。一旦我有所有名稱的數組,我需要以編程方式計算大多數事件的權利?一個比較常見的標籤示例:「Windows」將返回數千個名字 –