You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Pymongo使用$in查询ObjectId时如何批量转换列表元素类型

pymongo字符串格式ObjectId批量转换方法
  • 首先导入pymongo自带的ObjectId类,安装pymongo时会同步安装对应依赖,无需额外单独安装:
from bson.objectid import ObjectId
  • 用列表推导式批量将字符串id转为ObjectId实例:
ids = ['62b3221c2db07f9388aa61e9', '62b325f65402e5ceea9a3d4c', '62b48ccee6f77605c2783775']
converted_ids = [ObjectId(id_str) for id_str in ids]
  • 转换完成后直接传入$in查询参数即可正常匹配文档:
query_result = list(dbusers.find({"_id": {"$in": converted_ids}}))

注意:如果id列表中可能存在不符合24位十六进制格式的非法id,直接转换会抛出异常,可以加校验逻辑过滤无效值:

converted_ids = []
for id_str in ids:
    try:
        converted_ids.append(ObjectId(id_str))
    except Exception:
        # 可按需添加非法id日志记录逻辑,直接跳过无效值即可
        continue

内容的提问来源于stack exchange,提问作者Chris Taverner

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 05:15:41