Dường như truy vấn của tôi sẽ sẽ không hoạt động như mong đợi của tôiLàm thế nào để đẩy giá trị nhiều cột trong nhóm
Tôi muốn nhóm bởi name
và lập bản đồ LOCATION1 và LOCATION2 vào một mảng gọi locations
liệu
{name: "Jack", localtion1: "Taiwan", localtion2: "France"},
{name: "Jack", localtion1: "Japan", localtion2: "Taiwan"},
{name: "Mary", localtion1: "China", localtion2: "Taiwan"}
kết quả mong đợi
{
name: "Jack",
localtions: ["Taiwan", "France", "Japan"]
},
{name: "Mary", localtions: ["China", "Taiwan"]}
Truy vấn
db.collection.aggregate([
{
$group: {
_id: "$name",
"localtions":{
$addToSet: "$localtion1"
},
"localtions":{
$addToSet: "$localtion2"
}
count: { $sum: 1 }
}
},
{
$project: {
name: "$_id",
localtions: "$localtions",
_id: 0
}
},
])