sql >> Base de Datos >  >> NoSQL >> MongoDB

Clasificación personalizada de MongoDB

Si desea hacer una clasificación de este tipo, probablemente desee almacenar sus datos de una manera diferente. MongoDB en general no es tan bueno con la manipulación de documentos anidados como los campos de nivel superior. En su caso, recomendaría dividir ptime, pt y uid en su propia colección:

mensajes

{
    "_id":417,
    "ptime":ISODate("2013-11-26T11:18:42.961Z"),
    "type":"1",
    "txt":"test message"
},  

usuarios

{
    "id":417,
    "ptime":ISODate("2013-11-26T11:18:42.961Z"),
    "uid":"52872ed59542f",
    "pt":ISODate("2013-11-26T11:18:42.961Z")
},
{
    "id":417,
    "ptime":ISODate("2013-11-26T11:18:42.961Z"),
    "uid":"524eb460986e4",
    "pt":ISODate("2013-11-26T11:18:42.961Z")
},
{
    "id":417,
    "ptime":ISODate("2013-11-26T11:18:42.961Z"),
    "uid":"524179060781e",
    "pt":ISODate("2013-11-27T12:48:35Z")
}

Luego puede establecer un índice en la colección de usuarios para uid, ptime y pt.

Sin embargo, deberá realizar dos consultas para obtener también los mensajes de texto.