MongoDB-mongodb如何按照list的排序获取结果?
在monogodb中插入数据了以下数据:
db.user.insert({"uid":1);
db.user.insert({"uid":2);
...
db.user.insert({"uid":20);
通过以下方式搜索出来的结果是按照mongodb本身的排序输出的结果
db.user.find({"uid":{"$in":[10,9,1,12,4,5]}});
我想查询出来的结果按照实际输入的list顺序排列,有什么办法可以解决?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
好像这个真没有对应的手册方法,不过我觉得可以通过在搜索对in中得id加一层索引:
比如:10,9,1,12,4,5加上索引排序为0,1,2,3,4,5这样子
然后通过这个索引去遍历结果集,
这个我只是提供我的想法,你看行不行
不指定排序,就是按自然排序排的。只不过这个自然排序是指按照_id的自然排序去排。你的list只是一个查询条件,就相当于x > max AND x < min指定的一个查询范围,跟排序完全没有关系,不论是什么数据库系统,都会在你指定的这个list范围内找到数据后再按自身的排序方法来排序。
按上面这种方法去取值,取出来后,自己在java程序里循环一遍,然后跑出排序后的数组。
类似mysql的where_in 加了索引也没用的 个人觉得就靠程序进行处理吧