MongoDB-mongodb如何按照list的排序获取结果?

发布于 2016-10-13 20:32:14 字数 265 浏览 1670 评论 3

在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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

想挽留 2017-08-25 17:08:01

好像这个真没有对应的手册方法,不过我觉得可以通过在搜索对in中得id加一层索引:

比如:10,9,1,12,4,5加上索引排序为0,1,2,3,4,5这样子

然后通过这个索引去遍历结果集,
这个我只是提供我的想法,你看行不行

夜无邪 2017-07-20 18:35:01

不指定排序,就是按自然排序排的。只不过这个自然排序是指按照_id的自然排序去排。你的list只是一个查询条件,就相当于x > max AND x < min指定的一个查询范围,跟排序完全没有关系,不论是什么数据库系统,都会在你指定的这个list范围内找到数据后再按自身的排序方法来排序。
按上面这种方法去取值,取出来后,自己在java程序里循环一遍,然后跑出排序后的数组。

浮生未歇 2017-04-29 02:40:18

类似mysql的where_in 加了索引也没用的 个人觉得就靠程序进行处理吧

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文