Mam kolekcję dokumentów MongoDB zawierającą kilka pól. Jedna z kolumn/pól powinna być tylko numeryczna, ale niektóre z tych pól zawierają nie numeryczne (uszkodzone) dane jako wartości łańcuchowe. Powinienem znaleźć najwyższą wartość liczbową tej kolumny, wyłączając uszkodzone, nieliczbowe dane. Znam pytanie: Getting the highest value of a column in MongoDB, ale AFAIK, ten rozszerzony przypadek nie został uwzględniony.mongodb: znalezienie najwyższej wartości liczbowej kolumny
Poniższy przykład przedstawia problem. Dla najwyższej wartości, dokument z "age": 70
powinny być zwrócone:
[
{
"id": "aa001",
"age": "90"
},
{
"id": "bb002",
"age": 70
},
{
"id": "cc003",
"age": 20,
}
]
Zapewnienie przykład PHP dla find()/findOne() zapytanie byłoby zbyt pomocne. Wielkie dzięki!
JohnnyHK wymyślił idealne rozwiązanie. Oto działa kod PHP:
$cursor = $collection->find(array('age' => array('$not' => array('$type' => 2))), array('age' => 1));
$cursor->sort(array('age' => -1))->limit(1);
Wow, że był szybki, dzięki! Działa świetnie. Dodam działający kod PHP do pytania. – martti