24.99K 浏览2015/05/05驱动程序 0 dragonflylxp0 2015/05/06 0条评论 例如查询uid=[‘123′,’456′,’789’,…]这样一批用户的信息,逐个uid串行查询效率太慢, 用$in做批量查询但返回的结果顺序不一定与列表中uid的顺序一致。请问有什么办法能保证这个顺序?期待各位大神的解答。 2 答案 活跃已投票最新最老的 0 TJ130 发布 2015/05/06 1 条评论 当你使用uid做$in查询时候,如果uid有索引,那么返回的结果会按照uid的索引项顺序排列而不是按照输入的uid。如果uid没有索引,那么会按照记录的自然顺序来返回。也就是说MongoDB无法满足你的需求。你所可以做的就是在结果回来之后按照你原来uid的数组顺序在内存里重新组织一下结果集就可以了 dragonflylxp 已评论 2015/05/07 嗯,明白了。我现在的处理方式就是如你所说查询之后自己调整顺序。感谢。 0 eshujiushiwo16 发布 2015/05/06 1 条评论 HI 最后排序sort一下就好了~ .sort({uid:1}) dragonflylxp 已评论 2015/05/07 是的,将查询条件uid列表排序,再讲结果集也按uid排序,是将结果和条件匹配上的一种方式。感谢 注册 或 登录
嗯,明白了。我现在的处理方式就是如你所说查询之后自己调整顺序。感谢。