所以假设我的“请求”集合中有以下文档:
{
pickup: {
coords: null
},
meetup: {
coords: [ someLng, someLat ]
}
},
{
pickup: {
coords: null
},
meetup: {
coords: [ someLng, someLat ]
}
},
{
pickup: {
coords: [ someLng, someLat ]
},
meetup: {
coords: [ someLng, someLat ]
}
}
其目的是向用户显示一个按从最近到最远位置的距离排序的请求列表。
如果
pickup.coords
meetup.coords
.
$cond
但我有一个错误,我不知道如何准确使用它。
以下是我认为可行的方法:
const query = {
$cond: {
if: {
'pickup.coords': { $exists: true }
},
then: {
// use pickup.coords as reference for distance to user
},
else: {
// use meetup.coords as reference for distance to user
}
}
}
const requests = await Request.find( query )
错误:
unknown top level operator: $cond
最后的请求会复杂得多,因为我将用
limit
$near
我想有一些索引的操作符。但最好能完成第一步:-)
任何帮助都将不胜感激!