批量查询如果保证结果顺序

发布问题 回首页

批量查询如果保证结果顺序

★ 0 成为第一个关注这个问题的人

例如查询uid=['123','456','789',...]这样一批用户的信息,逐个uid串行查询效率太慢, 用$in做批量查询但返回的结果顺序不一定与列表中uid的顺序一致。请问有什么办法能保证这个顺序?期待各位大神的解答。

dragonflylxp 在大约 之前评论了回答
  • 提问于
  • Answers2 个
  • 浏览 744 次
  • 最新活跃于

2 个回答2

0
TJ answered about

当你使用uid做$in查询时候,如果uid有索引,那么返回的结果会按照uid的索引项顺序排列而不是按照输入的uid。如果uid没有索引,那么会按照记录的自然顺序来返回。也就是说MongoDB无法满足你的需求。你所可以做的就是在结果回来之后按照你原来uid的数组顺序在内存里重新组织一下结果集就可以了

dragonflylxp 在大约 之前评论了回答
1 Comment
  • 嗯,明白了。我现在的处理方式就是如你所说查询之后自己调整顺序。感谢。 -

0
eshujiushiwo answered about

HI
最后排序sort一下就好了~
.sort({uid:1})

paulzjw 在大约 之前添加了 状态
1 Comment
  • 是的,将查询条件uid列表排序,再讲结果集也按uid排序,是将结果和条件匹配上的一种方式。感谢 -

To use reCAPTCHA you must get an API key from https://www.google.com/recaptcha/admin/create