Todos. En la consulta del grupo mongo, el resultado muestra solo la (s) clave (s) en los argumentos. Cómo mantener el primer documento en cada grupo como grupo de consulta mysql. por ejemplo:
-------------------------------------------------------------------------
| name | age | sex | province | city | area | address |
-------------------------------------------------------------------------
| ddl1st | 22 | 纯爷们 | BeiJing | BeiJing | ChaoYang | QingNianLu |
| ddl1st | 24 | 纯爷们 | BeiJing | BeiJing | XuHui | ZhaoJiaBangLu |
| 24k | 220 | ... | .... | ... | ... | ... |
-------------------------------------------------------------------------
db.users.group({key: { name: 1},reduce: function ( curr, result ) { result.count ++ },initial: {count : 0 } })
resultado:
[
{
"name" : "ddl1st",
"count" : 1
},
{
"name" : "24k",
"count" : 1
}
]
Cómo conseguir lo siguiente:
[
{
"name" : "ddl1st",
"age" : 22,
"sex" : "纯爷们",
"province" : "BeiJing",
"city" : "BeiJing",
"area" : "ChaoYang",
"address" : "QingNianLu",
"count" : 1
},
{
"name" : "24k",
"age" : 220,
"sex" : "...",
"province" : "...",
"city" : "...",
"area" : "...",
"address" : "...",
"count" : 1
}
]
{$first: '$age'}
etc.? ¿Es posible simplemente tenerage: $age
?$group
_id, puede$sort
antes con el campo deseado y luego agrupar y usar operadores$first
u$last
en cualquier campo. Al acumular, la idea de incluir otros campos (que se acumulan / canalizan / reducen) no tiene tanto sentido ni siquiera teóricamente. Sin embargo, ordenar de antemano es en realidad ineficaz en comparación con ordenar cada grupo dentro de sí mismos, ya que los algoritmos de clasificación son más complejos que O (n). Ojalá hubiera mejores formas en MongoDB.