0
我有含有一種叫searchTerms場蒙戈文件。這是一個包含單詞的數組。 [「字詞1」,「詞條2」,「TERM3」,「term4」]MongoDB的映射減少搜索條件
我想寫一個由相關文檔返回的功能。這意味着,與大多數文件查詢的searchCriteria內術語第一,接着下一個最高的量方面等
實施例:
文件:
{"_id":"1", "searchTerms":["a","b","c","d"]}
{"_id":"2", "searchTerms":["a","b","x","q"]}
{"_id":"3", "searchTerms":["a","e","x","n"]}
{"_id":"4", "searchTerms":["e","f","g","z"]}
對於搜索術語:[「一」 ,「b」,「c」]結果應該是:
{"_id":"1", "searchTerms":["a","b","c","d"]}
{"_id":"2", "searchTerms":["a","b","x","q"]}
{"_id":"3", "searchTerms":["a","e","x","n"]}
我已經寫了一個函數來做到這一點,但它非常複雜,我認爲效率低下。我在讀有關地圖減少和不知道它是否能在這種情況下幫助嗎?我絞盡腦汁試圖弄清楚如何做到這一點。我不確定它是否可以或不可以?如果是的話,有人可以告訴我它是如何工作的?
嗨Veeram,哇謝謝你的回答太棒了!我沒有意識到它可以被濃縮這麼多...只是一對夫婦的問題。如果我想包含文檔中的所有字段,是否需要在第一個$項目中特別包含全部內容?即「field1」:1,「field2」:1? –
如果要包含所有字段,則可以在第一個項目中使用「字段」:$$ ROOT,但這也包含計算字段「匹配」。所以要麼是$$ ROOT,要麼你只需要在第一個項目中特別包含。 – Veeram
Veeram我不能夠感謝你!天才 –