+1
Sort relationship với mongodb
Xin chào mọi người, mình có một vấn đề như sau, mong mọi người giải đáp giúp: 1, Mình có 2 bảng là sales quan hệ 1 N với bảng orders. 2, Làm thế nào để sort bảng sales theo số lượng bản ghi của orders có order hôm nay và trạng thái của order đó ? Cảm ơn mọi người.
Thêm một bình luận
2 CÂU TRẢ LỜI
+2
Bạn dùng aggregate function của mongodb nhé.
https://docs.mongodb.com/manual/reference/operator/aggregation-pipeline/
db.getCollection('orders').aggregate([
{
$lookup: {
from: 'sales',
localField: 'sale_id',
foreignField: '_id',
as: 'sale_info',
},
},
{ $unwind: '$sale_info' },
{
$group: {
_id: '$sale_info._id',
root: { $first: '$$ROOT' },
count: { $sum: 1 },
},
},
{ $sort: { count: -1 } },
{
$replaceRoot: { newRoot: '$root' },
},
]);
@htdangkhoa thank bạn, mình thử cách khác rồi
-1
bạn có thể dùng relationship để lấy ra order count nó rồi orderBy cụ thể :
Sale::with('orders')
->selectRaw(DB::raw('count(orders) AS countOrders))
->orderBy('countOrders')
->get();
Ủa, mongodb cũng viết đc kiểu này à bạn.
@TuanLinhChi Mongodb bạn ơi