我有包含多个字段的 MongoDB 文档集合。列/字段之一应仅为数字,但其中一些字段包含非数字(损坏)数据作为字符串值。我应该找到该列的最高数值,不包括损坏的非数值数据。我知道Get the high value of a column in MongoDB的问题,但是 AFAIK,这个扩展案例没有被涵盖。
下面的示例描述了该问题。对于最高值,"age": 70
应返回带有的文档:
[
{
"id": "aa001",
"age": "90"
},
{
"id": "bb002",
"age": 70
},
{
"id": "cc003",
"age": 20,
}
]
为 find() / findOne() 查询提供一个 PHP 示例会很有帮助。非常感谢!
JohnnyHK 想出了完美的解决方案。这是工作的PHP代码:
$cursor = $collection->find(array('age' => array('$not' => array('$type' => 2))), array('age' => 1));
$cursor->sort(array('age' => -1))->limit(1);