def find_by_ids_ordered(cls, ids, params=FindParams(), strict=True):
# pylint: disable=no-member
if isinstance(cls.id, ObjectIdField):
ids = [ObjectId(i) for i in ids]
docs = {doc['_id']: doc for doc in cls.find(_id={'$in': ids}, params=params)}
docs = [docs[i] for i in ids if i in docs]
if strict and len(docs) != len(ids):
raise Exception('Some docs not found')
return docs
评论列表
文章目录