MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Classificação personalizada do MongoDB


Se você quiser fazer essa classificação, provavelmente desejará armazenar seus dados de uma maneira diferente. O MongoDB geralmente não é tão bom em manipular documentos aninhados quanto os campos de nível superior. No seu caso, eu recomendaria dividir ptime, pt e uid em sua própria coleção:

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

usuários
{
    "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")
}

Você pode então definir um índice na coleção de usuários para uid, ptime e pt.

Você precisará fazer duas consultas para também obter as mensagens de texto.