本文用python和pyMongo来实现该问题解决方法
‘$in’是我们经常用到去解决循环db访问的一个有效方法,但是’$in’查询会伴随着一个问题,就是查询出的结果与被当作参数传入的list的顺序不一致。
解决方法:
排序:将传入的list进行编号,然后将查询出的结果集根据编号进行sort排序。
items = db.items.find('_id': {'$in': item_ids})
item_indexes = {id_: index for index, id_ in enumerate(school_paper['item_ids'])
items.sort(key=lambda item: item_indexes[item['_id']])