我正在寻找一种方法来对嵌套的对象数组进行排序.这是一个例子:
answers: [
{name: 'paul', state: 'RU'},
{name: 'steve', state: 'US'},
{name: 'mike', state: 'DE'},
...
]
Run Code Online (Sandbox Code Playgroud)
假设现在我要找到所有name的中,answers阵列,但在方兴未艾的顺序排序的话,我怎么能做到呢?
考虑到几个集合:
1.-用户
{
name: ...
id: ...
city: ...
age: ...
otherdata: ...
}
Run Code Online (Sandbox Code Playgroud)
2.- PETS
{
name: ...
owner: ...
type: ...
age: ...
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用$ lookup聚合来构建一组代表用户及其宠物的对象:
collectionusers.aggregate([
{
$lookup: {
from: "pets",
localField: "id",
foreignField: "owner",
as: "pets"
}
}
]);
Run Code Online (Sandbox Code Playgroud)
但是我想添加一个过滤器,以便只为每个用户添加1年以上的宠物(使用宠物对象内的年龄).
问题是,在聚合中添加$ match不起作用,因为它过滤掉没有旧宠物的用户,我希望用户即使没有宠物也能在那里.
实际上我也试图以同样的方式只获得每个用户中最老的宠物,我也没有找到配方.
在聚合中执行此操作的任何方法?
当然,目前我正在对返回的对象进行操作.
提前致谢.