我有一个事件列表。我想在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();