+1
Mysql convert Mongodb
Mình có câu truy vấn mysql như này giờ muốn chuyển sang mongoDB thì làm như nào ạ. Rất mong được giúp đỡ .
Thêm một bình luận
1 CÂU TRẢ LỜI
+2
Bạn dùng thử aggregate
operator xem sao nhé. Câu truy vấn với aggregate
sẽ kiểu như này:
db.TableA.aggregate([
{
"$lookup": {
"from": "TableB",
"localField": "_id",
"foreignField": "id_a",
"as": "dataFromB",
"pipeline": [
{
"$match": {
"ac": 1
}
}
]
}
},
{
"$lookup": {
"from": "TableC",
"localField": "_id",
"foreignField": "id_a",
"as": "dataFromC",
"pipeline": [
{
"$match": {
"ac": 2
}
}
]
}
},
{
"$match": {
"level": 1
}
},
{
$addFields: {
totalB: {
$size: "$dataFromB"
},
totalC: {
$size: "$dataFromC"
}
}
},
{
$project: {
dataFromB: 0,
dataFromC: 0
}
}
])
Output:
[
{
"_id": 1,
"level": 1,
"totalB": 2,
"totalC": 1
},
{
"_id": 2,
"level": 1,
"totalB": 0,
"totalC": 1
}
]
Demo: https://mongoplayground.net/p/DPmpLuHtU2r
Chắc là có nhiều cách truy vấn khác nữa nhưng bạn có thể thử cách này của mình xem sao.
Cách này dữ liệu bảng con lớn trả về kết quả hơi chậm ạ