我在如何在我的Meteor應用中設置集合時遇到了一些困難。用戶搜索欄是我的應用程序的核心部分,而用戶需要能夠跨多個不同的集合輸入一個搜索,並有結果:Meteor.js - 在多個集合上執行用戶搜索的方法
user query : 'foo'
var query = 'foo';
var actors_results = Actors.find({ $or : [{ name : query}, { actor_biography : query }]);
var films_results = Films.find({ $or : [{ name : query}, { description : query }]);
var cinemas_results = Cinemas.find({ $or : [{ name : query}, { genres : query }]);
對於搜索結果顯示這是不好的 - 我不我認爲(???)我可以將這些遊標組合成一個遊標,並且像分頁這樣簡單的事情幾乎不可能做到(或者我不知道該怎麼做)。
我知道的唯一的解決辦法是讓一個SuperCollection,我把所有的文件,並有一個重要的「類型」這可能是「演員」,「電影」或「電影」,然後分頁等變得容易。
但在我看來,這確實使其他一切變得複雜......數據庫的結構不再反映數據。演員和電影院在數據/結構方面沒有共同之處,我只需要能夠並行搜索它們。
另外,我將如何設置SuperCollection的多個驗證方案,取決於字段'type'的值?
任何想法/建議非常感謝!
爲什麼不嘗試新的易於搜索的氣氛包。 https://github.com/matteodem/meteor-easy-search – Warz
感謝@Warz提示 - 我的字段中沒有太多文本,更像是鍵值對,所以我認爲彈性搜索可能有點矯枉過正。在這個問題上,Mongo的新的全文搜索也值得一看,那些需要更加強大的文本搜索的人 – Petrov
@Warz是一款易於搜索支持多集合的搜索嗎?任何示例如何做到這一點? – Jaro