尝试在 python 中定义一个可以搜索给定 UUID 的函数,如下所示:
def getid(in_id):
return list(CollectionVar.find({"_id":UUID(in_id)}))
Run Code Online (Sandbox Code Playgroud)
并传入一个 UUID。我可以从 Studio 3T 获取我知道的 UUID,如下所示:
db.getCollection("CollectionName").find({"_id":UUID("5002aa11-eeb7-4e68-a121-dd51497d2572")})
Run Code Online (Sandbox Code Playgroud)
上面的查询恰好返回一个文档。python 查询中的相同 UUID 绝对不返回任何内容。我可以轻松地找到其他(非 UUID)字段上的文档,例如,以下内容在之前的同一文档上运行良好:
def getname(fn,sn):
return list(CollectionVar.find({"Firstname":re.compile(fn, re.IGNORECASE), "Surname":re.compile(sn, re.IGNORECASE)}))
Run Code Online (Sandbox Code Playgroud)
这似乎是 uuid.UUID 类的问题,而不是 pymongo 问题?任何人都可以看到问题吗?
PyMongo 版本 3.6.1