Io attualmente ho oggetti in mongo impostato come questo per la mia applicazione (esempio semplificato, ho rimosso alcuni campi irrilevanti per chiarezza qui):Mongo trovare query per le matrici più lunghe all'interno oggetto
{
"_id" : ObjectId("529159af5b508dd71500000a"),
"c" : "somecontent",
"l" : [
{
"d" : "2013-11-24T01:43:11.367Z",
"u" : "User1"
},
{
"d" : "2013-11-24T01:43:51.206Z",
"u" : "User2"
}
]
}
Quello che vorrei do è eseguire una query di ricerca per restituire gli oggetti che hanno la lunghezza di array più alta sotto "l" e ordinare il più alto-> il più basso, il limite a 25 risultati. Alcuni oggetti possono avere 1 oggetto nella matrice, alcuni possono avere 100. Mi piacerebbe scoprire quali hanno il massimo sotto "l". Sono nuovo di mongo e ho ottenuto tutto il resto fino a questo punto, ma non riesco a capire i parametri giusti per ottenere questa query specifica. Dove mi sto confondendo è come gestire il conteggio della lunghezza dell'array, l'ordinamento, ecc. Potrei codificarlo manualmente analizzando tutto nella raccolta, ma sono sicuro che ci deve essere un modo per mongo di fare questo lontano Più efficiente. Non sono contrario all'apprendimento, se qualcuno conosce risorse per query più avanzate o potrebbe aiutarmi, sarei davvero grato perché questo è l'ultimo pezzo! :-)
Come nota a margine, node.js e mongo insieme sono fantastici e vorrei iniziare a usarli in congiunzione molto tempo fa.
Grazie! Esattamente quello di cui avevo bisogno. Pensavo che l'aggregazione fosse l'approccio corretto ma non ero sicuro di come utilizzarlo correttamente. Molto apprezzato :-) – mike029