我正在尝试通过名为' orderId'的值查询集合。 orderId是递增数字,但它存储为字符串。例如..
[{orderId: '1'}, {orderId: '2'}, {orderId: '3'}]
等。
这是我的疑问:
Order.find().sort({"orderId": -1}).limit(1).exec(function (err, order) {...}
问题是,这只会返回最大orderId为' 9'如果我从0开始并按' 1'增加每一次。我假设这是因为它是一个字符串。我知道这个值应该存储为一个数字,但仅仅因为我自己的好奇心是否可以找到最高值,如果它存储为字符串?为什么它会停留在值' 9'?
答案 0 :(得分:2)
这称为"lexicographic order"。其中,值“9”将大于值“123412341234716”。如果您希望您的值对数字进行排序,请将它们存储为数字。
但是,它不会在9点停止。 “99”将大于“9”。