【发布时间】:2019-01-14 19:14:11
【问题描述】:
如何按字段“options.optionValue”排序,例如:A、B、C、D、E
我在下面做错了什么:
查询:
db.perguntas.aggregate([
{"$lookup":{
"from": "perguntarespostas",
"localField": "perguntaId",
"foreignField": "perguntaId",
"as": "opcoes"
}
},
{"$match":{"opcoes.opcaoValor":{"$exists": true}}},
{"$project": {"_id": 1, "perguntaId":1, "enunciado": 1,"opcaoCerta":1, "opcoes": {"opcao":1,"opcaoValor":1,"perguntaId":1}}},
{"$sort": {"opcoes.opcaoValor":1}},
])
结果:
{
"_id" : ObjectId("5c363c459de150335880ce76"),
"perguntaId" : 18332,
"enunciado" : "Considerando-se as ações constitucionais típicas, poderá o Estado de São Paulo ajuizar",
"opcaoCerta" : "A",
"opcoes" : [
{
"perguntaId" : 18332,
"opcao" : "b) ação de desapropriação, habeas data e ação direta de inconstitucionalidade.",
"opcaoValor" : "B"
},
{
"perguntaId" : 18332,
"opcao" : "d) argüição de descumprimento de preceito fundamental, ação declaratória de constitucionalidade e mandado de segurança.",
"opcaoValor" : "D"
},
{
"perguntaId" : 18332,
"opcao" : "c) ação direta de inconstitucionalidade, mandado de segurança coletivo e ação popular.",
"opcaoValor" : "C"
},
{
"perguntaId" : 18332,
"opcao" : "e) ação de desapropriação, argüição de descumprimento de preceito fundamental e habeas data.",
"opcaoValor" : "E"
},
{
"perguntaId" : 18332,
"opcao" : "a) ação coletiva, mandado de segurança e mandado de injunção.",
"opcaoValor" : "A"
}
]
}
我必须在上面进行更改才能通过按字段“opcaoValor”排序来获得预期结果。
【问题讨论】: