我有“要约”和“请求”集合,我需要获取用户提供的所有要约,按请求将它们分组,并在每个请求上找到最低的“要约价格”,每个要约都有requestId字段。 我正在使用聚合来解决此问题,
db.Offer.aggregate([{
$match: {
ownerId: mongoose.Types.ObjectId(req.params.ownerId)
}
},{
$group: {
_id: "$requestId",price: {
$min: "$price"
}
}
}
])
这就是我得到的:
[ { _id: 5dc47241af1406031489c65c,price: 14 },{ _id: 5dc47241af1406031489c653,price: 3 },{ _id: 5dc47241af1406031489c656,price: 5 },{ _id: 5dc8add63f73953ff408f962,price: 6 },{ _id: 5dc8add63f73953ff408f969,price: 22 },{ _id: 5dc47241af1406031489c658,price: 1 } ]
现在我想用“要约”中的其余数据填充这些内容
const OfferSchema = new Schema({
requestId: {
type: Schema.Types.ObjectId,ref: 'Request'
},ownerId: {
type: Schema.Types.ObjectId,required: true,ref: 'User'
},price: {
type: Number,required: true
},createdAt: {
type: Date,default: Date.now
},isBest: {
type: Boolean,default: false
},isWinner: {
type: Boolean,default: false,}
});
做这样的事情的最佳方法是什么? 谢谢您的帮助!