希望我能解释清楚。
我在这里有3种模型类型:用户,产品和商店。我所追求的是每个用户的商店排序列表,基于他们从该商店添加了多少产品。所以基本上“告诉我这个用户的顶级商店”。
伪模式:
var User = {
name: String
};
var Store = {
name: String
};
var Product = {
title: String,
user: {
type: mongoose.Schema.Types.ObjectId,
ref: 'User',
}
store: {
type: mongoose.Schema.Types.ObjectId,
ref: 'Store'
}
};
那么如何找到用户添加了最多产品的商店?这可能很明显,已经很晚了。 :-P
谢谢!
答案 0 :(得分:0)
您可以尝试使用Aggregation framework来解决问题 特别是$group管道:
// aggregate whole `Product` collection
Product.aggregate([
// count products by `user` and `store` and save result to `products_count`
{$group: {
_id: {user_id:"$user", store_id:"$store"},
products_count: {$sum: 1}
}},
// sort by most products count
{$sort: {products_count: -1}}
])