如何在python中测试ObjectID和hex字符串

2024-04-18 17:40:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试编写一个通用方法,用于查询一个mongodb集合(a)关于来自单独mongodb集合(B)的id。以下是我目前掌握的情况:

def getOtherCollInfo(self, otherCollObj, queryField, outputField="_id"):

    selfIdList = self.getIds() # gets a set of ids from whole collection (B)
    returned_dict = {}
    for selfId in selfIdList:
        curs_obj = otherCollObj.find({queryField : str(selfId)}).distinct(outputField) #otherCollObj is the 'collection (A)
        temp_list=[]
        for obj in curs_obj:
            temp_list.append(obj)
            returned_dict[selfId]=temp_list
    return returned_dict

对于query_field看起来像这样的集合,这很好:

542de00c763f4a7f558be12f

当在第三个集合(C)上尝试此方法时,它失败了(我认为),因为query_field只是十六进制代码:

ObjectId('542de00c763f4a7f558be12f')

有没有办法测试id的格式,这样我就可以使方法更通用?你知道吗


Tags: 方法selfidobjmongodbtempdictlist