Триграммный поиск


Есть коллекция слов, где каждое слово
содержит набор триграмм. Сопоставить эту
коллекцию с клиентским запросом можно так:

db.words.aggregate(
    { $match : { $and : [ { word_len : {$gte:5}}, { word_len : {$lte:20} } ]  } },
    { $unwind: "$let" }, 
    { $match : { let: {$in: ['afr','fri','rik']} } },
    { $group : { _id: '$word', number: {$sum:1} }},
    { $match : { $and : [ { number : {$gte:1}}, { number : {$lte:3} } ]  } },
    { $sort : { number: -1 } },
    { $limit: 5}
)