Ho raccolta di documenti MongoDB contenente diversi campi. Uno dei campi/colonne dovrebbe essere solo numerico, ma alcuni di questi campi contengono dati non numerici (corrotti) come valori di stringa. Dovrei trovare il valore numerico più alto di questa colonna, escludendo i dati corrotti e non numerici. Sono a conoscenza della domanda Getting the highest value of a column in MongoDB, ma AFAIK, questo caso esteso non era coperto.mongodb: trovare il valore numerico più alto di una colonna
L'esempio seguente illustra il problema. Per il valore più alto, il documento con "age": 70
deve essere restituito:
[
{
"id": "aa001",
"age": "90"
},
{
"id": "bb002",
"age": 70
},
{
"id": "cc003",
"age": 20,
}
]
Fornire un esempio PHP per il find()/findOne() interrogazione sarebbe di molto aiuto. Molte grazie!
JohnnyHK ha trovato la soluzione perfetta. Ecco il codice PHP di lavoro:
$cursor = $collection->find(array('age' => array('$not' => array('$type' => 2))), array('age' => 1));
$cursor->sort(array('age' => -1))->limit(1);
Wow che è stato veloce, grazie! Funziona perfettamente. Aggiungerò il codice PHP correlato al lavoro alla domanda. – martti