【问题标题】:How to sort integers in mongodb with java driver?如何使用 java 驱动程序对 mongodb 中的整数进行排序?
【发布时间】:2015-12-10 13:55:58
【问题描述】:

我已经用 java 连接了 mongo 数据库,并且我已经在数据库中有数据。数据库中的数据如下所示:

{"id":"4654654", "money":"54"}
{"id":"44234654", "money":"102"}
{"id":"123654", "money":"36"}
{"id":"98764654", "money":"5400"}
{"id":"456655", "money":"520"}
{"id":"7654", "money":"789"}
{"id":"3456546", "money":"85"}
{"id":"0346575", "money":"42"}
{"id":"46554645", "money":"2000"}

在 java 中,我想按“钱”对数据进行排序。 所以我写了这段代码:

DBCursor cursor = collection.find().sort(new BasicDBOject("money", 1));

while(cursor.hasNext(){
System.out.println(cursor.next().get("money"));
}

我希望我会得到这样的东西:

36
42
54
85
102
......

但这不是我得到的,我得到了这些数字:

102
2000
36
42
520
5400
....

它确实以某种方式订购,但这不是我想要的。 也许还有另一种方法可以按照我的意愿对数据进行排序。

【问题讨论】:

  • 您的货币字段存储为字符串。所以它被适当地排序为一个字符串。如果要按数字排序,则需要转换为数字。
  • 有效!!非常感谢您的帮助

标签: java mongodb mongodb-query database


【解决方案1】:

将此添加为答案(从我的评论转移),因为现在问题似乎已解决。您能否将此问题标记为已解决?

您的货币字段存储为字符串。所以它被适当地排序为一个字符串。如果要按数字排序,则需要转换为数字。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-13
    • 2020-09-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多