我的猫鼬聚合非常复杂。
基本轮廓是,我有一个用户集合,其中包含基本用户信息,而其他集合(如猫和猫)则包含详细数据。
在聚合中,我先按ID查找用户,然后按$ lookup填充个人资料属性下的狗/猫数据。
在聚合结束时,我有一个像这样的对象:
{
_id: "x",
name: "y",
species: "dog",
anotherProp: true,
profile: {
location: {
coordinates: [x, y],
type: "Point"
}
}
}
因此,我从User集合开始聚合,但这并不协调,我将在聚合管道的末尾使用完整的对象。
在这种情况下,如何使用$ near或$ geoNear功能?