У меня есть сборник документов MongoDB, содержащий несколько полей. Один из столбцов/полей должен быть только числовым, но некоторые из этих полей содержат нечисловые (поврежденные) данные в виде строковых значений. Я должен найти наивысшее числовое значение этого столбца, исключая коррумпированные, не численные данные. Я знаю вопрос Getting the highest value of a column in MongoDB, но AFAIK, этот расширенный случай не был охвачен.mongodb: нахождение наивысшего числового значения столбца
В приведенном ниже примере изображена проблема. Для максимального значения, документ с "age": 70
должен быть возвращен:
[
{
"id": "aa001",
"age": "90"
},
{
"id": "bb002",
"age": 70
},
{
"id": "cc003",
"age": 20,
}
]
Обеспечение PHP примера для находки()/findOne() запрос будет иметь большую помощи. Большое спасибо!
JohnnyHK разработал идеальное решение. Вот рабочий код PHP:
$cursor = $collection->find(array('age' => array('$not' => array('$type' => 2))), array('age' => 1));
$cursor->sort(array('age' => -1))->limit(1);
Ничего себе это было быстро, спасибо! Работает отлично. Я добавлю связанный с PHP код PHP к вопросу. – martti