您好,匿名用户
随意问技术百科期待您的加入

mongoDB的排序问题

0 投票

有一个List ArrayList<Long> al=new ArrayList<Long>();里面存储了从外部获取的数据的ID并且进行了排序(随机抽取的ID,按照先后放入LIST),然后把这些ID在mongoDB通过inObj.put("_id", new BasicDBObject("$in", list));进行in查询,获取后的结果并不和LIST中ID的顺序一样,搜索了一下,有文章说不指定排序的话,mongodb会按照$natural进行排序,但是我测试了一下,并不是这样。
现在问题是怎么才能让mongodb按照list的排序获取结果呢

用户头像 提问 2012年 12月1日 @ hacker 上等兵 (362 威望)
分享到:

1个回答

0 投票

这是个很好的问题。其实你查的文章没有说错,不指定排序,就是按自然排序排的。只不过这个自然排序是指按照_id的自然排序去排。你的list只是一个查询条件,就相当于x > max AND x < min指定的一个查询范围,跟排序完全没有关系,不论是什么数据库系统,都会在你指定的这个list范围内找到数据后再按自身的排序方法来排序。

我的建议是你还是按这种方法去取值,取出来后,自己在java程序里循环一遍,然后跑出排序后的数组。

用户头像 回复 2012年 12月1日 @ Zyra 上等兵 (289 威望)
提一个问题:

相关问题

0 投票
1 回复 30 阅读
用户头像 提问 2012年 12月1日 @ Sagittarius 上等兵 (289 威望)
0 投票
1 回复 7 阅读
用户头像 提问 2014年 5月14日 @ Zed 上等兵 (260 威望)
0 投票
1 回复 40 阅读
用户头像 提问 2012年 12月1日 @ Morgana 上等兵 (251 威望)
0 投票
1 回复 45 阅读
0 投票
1 回复 98 阅读

欢迎来到随意问技术百科, 这是一个面向专业开发者的IT问答网站,提供途径助开发者查找IT技术方案,解决程序bug和网站运维难题等。
温馨提示:本网站禁止用户发布与IT技术无关的、粗浅的、毫无意义的或者违法国家法规的等不合理内容,谢谢支持。

欢迎访问随意问技术百科,为了给您提供更好的服务,请及时反馈您的意见。
...