我想改進我的搜索方法 - 這應該是不區分大小寫的。在我的設置中有五個不同的集合,我想搜索它們的title
字段。 另外我還需要得到部分結果(最少3個字符)。MongoDB:優化搜索多個集合
例
// Collection 1
{ title: 'Sample' },
{ title: 'Another sample' }
{ title: 'This is an example' }
// Collection 2
{ title: 'Something else' },
{ title: 'A sample document' }
{ title: 'This is another example' }
Ample
:所有文件,除了第二收集Sample
的第一個:採集1的第一兩個文件和收集的第二2another
:第二份收集文件1is
:不應該給任何結果(< 3個字符)
到目前爲止,我做了這個
db.collection.find({ title: new RegExp(value, 'i') }).fetch()
...每個集合,並將結果合併成一個陣列。
但我認爲這是不是最佳的,因爲使用正則表達式,並且所有文檔都必須由數據庫搜索。
所以我轉向使用全文搜索。我添加一個索引title
,並試圖此:
db.collection.find({ $text: { $search: value } }).count()
但隨後Samp
甚至不給我的第一個文件。
最後但並非最不重要我不知道如何執行所有五個集合的搜索來獲得所有匹配作爲一個結果。