У меня есть список событий.Я хотел бы найти в полях title
и description
определенную фразу и вернуть события в заданном радиусе, соответствующие запросу.
В настоящее время я использую оператор $or
, который, кажется, работает,Однако мне интересно, есть ли лучший способ сделать это?Я создал составной текстовый индекс, который использует оба поля;Я просто не уверен, что он действительно привыкнет.
let queryText = /someString/;
return db.collection('events').aggregate([
{
$geoNear: {
near: [lng, lat],
distanceField: 'distance',
maxDistance: radius,
query: {
$or: [
{title: queryText},
{description: queryText}
]
},
spherical: true
}
}
]).toArray();