所以我有一些包含名字和名字的用戶檔案。如果給定的輸入“看起來像”全名,我想提供過濾它們的可能性。
user: {
firstName: "foo",
lastName: "name",
...
}
之前,我通過測量輸入和全名之間相似度的“分數”在 javascript 端執行此過濾器,但由于我實作了分頁系統,我不能再這樣做了。
現在我想找到一種方法來在聚合端做到這一點。
我發現了這個問題和這個問題,這似乎做了同樣的事情,但由于他們不直接使用聚合,因此我很難將其與我的案例聯系起來。
我一直在想的一種方法是$where在聚合中使用運算子,然后addField對查詢的每個結果進行“相似度分數”,然后使用aggregatePaginate選項根據分數對其進行過濾。
但在我看來我不能$where在聚合中使用。任何的想法 ?
非常感謝 !凱夫:)
uj5u.com熱心網友回復:
對于聚合,您可以使用$function來執行自定義代碼。但是這種方式違背了分頁的目的,因為 Mongo 必須為每個檔案執行這段代碼,另外建議不要在 Mongo 中執行 js,因為它的性能有些差。
似乎您只是使用了錯誤的資料庫來完成這項作業,如果這是一個關鍵功能,我建議您嘗試使用文本搜索資料庫,例如atlas 搜索或elasticsearch
如果更改 db 不是一種選擇,并且此功能太重要而無法洗掉或替代。也許如果您提供有關評分如何運作的其他詳細資訊,則可以更輕松地給出完整答案。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/377427.html
