有一个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的排序获取结果呢
没用过mongodb,不过感觉这个问题的答案和别的关系型数据库一样的。如果你在关系型数据库中这样插入ID,而ID又是主键的话,那么数据库会自动按照ID的值进行排序,因为主键本身是一个聚集索引,要达到你想要的效果很简单,不要自己生成ID,让Mongodb生成一个自动自增的ID,这样插入时排序是按照这个自增值排序的,你读取的时候也是按照插入顺序读取的。