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

如何通过_id获取MongoDB指定文档中数组的长度(PyMongo)

使用PyMongo获取指定文档中数组的长度

方法一:查询文档后计算长度(代码最简)

直接查询目标文档,取出数组字段后用Python的len()计算长度,适合数据量较小的场景:

from pymongo import MongoClient

# 连接MongoDB实例
client = MongoClient('mongodb://localhost:27017/')
# 指定数据库和集合
db = client['你的数据库名']
collection = db['你的集合名']

# 目标文档的_id
target_id = "5678"

# 查询文档并获取数组长度
doc = collection.find_one({"_id": target_id})
if doc and "arr" in doc:
    arr_len = len(doc["arr"])
    print(arr_len)  # 输出2
else:
    print("未找到目标文档或文档中无arr字段")

方法二:聚合查询直接计算(更高效)

通过MongoDB的聚合框架在数据库端计算数组长度,避免传输整个数组,适合大数据量场景:

from pymongo import MongoClient

client = MongoClient('mongodb://localhost:27017/')
db = client['你的数据库名']
collection = db['你的集合名']

target_id = "5678"

# 聚合查询计算数组长度
try:
    result = collection.aggregate([
        {"$match": {"_id": target_id}},
        {"$project": {"arr_length": {"$size": "$arr"}}}
    ]).next()
    print(result["arr_length"])  # 输出2
except StopIteration:
    print("未找到目标文档")

注意事项

如果你的_id是MongoDB默认的ObjectId类型,需要先转换类型:

from bson.objectid import ObjectId

target_id = ObjectId("替换为实际的ObjectId字符串")

内容的提问来源于stack exchange,提问作者Sonya gold

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 01:01:11