Я пытаюсь отсортировать мою коллекцию mon go в порядке возрастания. Но после выполнения моего кода результат не в порядке сортировки.
Моя коллекция Mon go равна
{
"_id" : ObjectId("5e60e61450c82e1abc7c82bd"),
"barId" : "5e55f10d8b54541278e9cb07",
"juices" : [
{
"_id" : 1,
"mixerId" : 1,
"mixerName" : "Tejuino",
"price" : 0,
"isActive" : 1
},
{
"_id" : 2,
"mixerId" : 1,
"mixerName" : "Izze",
"price" : 0,
"isActive" : 1
},
{
"_id" : 3,
"mixerId" : 1,
"mixerName" : "Kaffir lime",
"price" : 0,
"isActive" : 1
},
{
"_id" : 4,
"mixerId" : 1,
"mixerName" : "Limeade",
"price" : 0,
"isActive" : 1
},
{
"_id" : 5,
"mixerId" : 1,
"mixerName" : "Must",
"price" : 0,
"isActive" : 1
},
{
"_id" : 6,
"mixerId" : 1,
"mixerName" : "Pog",
"price" : 0,
"isActive" : 1
},
{
"_id" : 7,
"mixerId" : 1,
"mixerName" : "Petimezi",
"price" : 0,
"isActive" : 0
}
],
"soda" : [
{
"_id" : 1,
"mixerId" : 2,
"mixerName" : "REGULAR SODA",
"price" : 0,
"isActive" : 1
},
{
"_id" : 2,
"mixerId" : 2,
"mixerName" : "Fanta Grape",
"price" : 0,
"isActive" : 1
},
{
"_id" : 3,
"mixerId" : 2,
"mixerName" : "Stewart's Black Cherry Wishniak",
"price" : 0,
"isActive" : 1
},
{
"_id" : 4,
"mixerId" : 2,
"mixerName" : "Dr. Brown's Black Cherry",
"price" : 0,
"isActive" : 1
},
{
"_id" : 5,
"mixerId" : 2,
"mixerName" : "A&W Cream",
"price" : 0,
"isActive" : 1
},
{
"_id" : 6,
"mixerId" : 2,
"mixerName" : "Mug Cream",
"price" : 0,
"isActive" : 1
},
{
"_id" : 7,
"mixerId" : 2,
"mixerName" : "A&W Root Beer",
"price" : 0,
"isActive" : 1
},
{
"_id" : 8,
"mixerId" : 2,
"mixerName" : "Mountain Dew",
"price" : 0,
"isActive" : 0
}
],
"others" : [
{
"_id" : 1,
"mixerId" : 3,
"mixerName" : "GIN & BITTER LEMON",
"price" : 0,
"isActive" : 1
},
{
"_id" : 2,
"mixerId" : 3,
"mixerName" : "GIN & GINGER",
"price" : 0,
"isActive" : 1
},
{
"_id" : 3,
"mixerId" : 3,
"mixerName" : "GIN & VERMOUTH",
"price" : 0,
"isActive" : 1
},
{
"_id" : 4,
"mixerId" : 3,
"mixerName" : "GIN & LIME CORDIAL",
"price" : 0,
"isActive" : 1
},
{
"_id" : 5,
"mixerId" : 3,
"mixerName" : "GIN & GRAPEFRUIT",
"price" : 0,
"isActive" : 1
},
{
"_id" : 6,
"mixerId" : 3,
"mixerName" : "GIN & PINK LEMONADE",
"price" : 0,
"isActive" : 0
}
]
}
Я хочу отсортировать вложенный документ по возрастанию на основе mixerName. Ниже приведен мой запрос mongodb
db.getCollection('mixeritems').aggregate([
{ $match: { barId: '5e55f10d8b54541278e9cb07' } },
{ $project: {
juices: { $filter: {
input: "$juices",
as: "juices",
cond: { $eq: [ "$$juices.isActive", 1 ] }
} },
soda: { $filter: {
input: "$soda",
as: "soda",
cond: { $eq: [ "$$soda.isActive", 1 ] }
} } ,
others: { $filter: {
input: "$others",
as: "others",
cond: { $eq: [ "$$others.isActive", 1 ] }
} }
},},
{ $unwind: '$juices'},{ $unwind: '$soda'},{ $unwind: '$others'},
{ $sort : { 'juices.mixerName' : 1,"soda.mixerName" : 1,"others.mixerName" : 1 } },
{$group:{
_id: '$_id',
juices: { $addToSet: "$juices"},
soda: { $addToSet: "$soda"},
others: { $addToSet: "$others"}
}
}])
После исключения этого запроса, полученный мной результат приведен ниже:
{
"_id" : ObjectId("5e60e61450c82e1abc7c82bd"),
"juices" : [
{
"_id" : 5,
"mixerId" : 1,
"mixerName" : "Must",
"price" : 0,
"isActive" : 1
},
{
"_id" : 4,
"mixerId" : 1,
"mixerName" : "Limeade",
"price" : 0,
"isActive" : 1
},
{
"_id" : 3,
"mixerId" : 1,
"mixerName" : "Kaffir lime",
"price" : 0,
"isActive" : 1
},
{
"_id" : 6,
"mixerId" : 1,
"mixerName" : "Pog",
"price" : 0,
"isActive" : 1
},
{
"_id" : 1,
"mixerId" : 1,
"mixerName" : "Tejuino",
"price" : 0,
"isActive" : 1
},
{
"_id" : 2,
"mixerId" : 1,
"mixerName" : "Izze",
"price" : 0,
"isActive" : 1
}
],
"soda" : [
{
"_id" : 2,
"mixerId" : 2,
"mixerName" : "Fanta Grape",
"price" : 0,
"isActive" : 1
},
{
"_id" : 5,
"mixerId" : 2,
"mixerName" : "A&W Cream",
"price" : 0,
"isActive" : 1
},
{
"_id" : 6,
"mixerId" : 2,
"mixerName" : "Mug Cream",
"price" : 0,
"isActive" : 1
},
{
"_id" : 1,
"mixerId" : 2,
"mixerName" : "REGULAR SODA",
"price" : 0,
"isActive" : 1
},
{
"_id" : 3,
"mixerId" : 2,
"mixerName" : "Stewart's Black Cherry Wishniak",
"price" : 0,
"isActive" : 1
},
{
"_id" : 7,
"mixerId" : 2,
"mixerName" : "A&W Root Beer",
"price" : 0,
"isActive" : 1
},
{
"_id" : 4,
"mixerId" : 2,
"mixerName" : "Dr. Brown's Black Cherry",
"price" : 0,
"isActive" : 1
}
],
"others" : [
{
"_id" : 3,
"mixerId" : 3,
"mixerName" : "GIN & VERMOUTH",
"price" : 0,
"isActive" : 1
},
{
"_id" : 2,
"mixerId" : 3,
"mixerName" : "GIN & GINGER",
"price" : 0,
"isActive" : 1
},
{
"_id" : 4,
"mixerId" : 3,
"mixerName" : "GIN & LIME CORDIAL",
"price" : 0,
"isActive" : 1
},
{
"_id" : 5,
"mixerId" : 3,
"mixerName" : "GIN & GRAPEFRUIT",
"price" : 0,
"isActive" : 1
},
{
"_id" : 1,
"mixerId" : 3,
"mixerName" : "GIN & BITTER LEMON",
"price" : 0,
"isActive" : 1
}
]
}
Пожалуйста, помогите мне.