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

能否使用MongoEngine查询Mongo文档中数组的最后一个元素?

使用MongoEngine查询列表最后一个元素满足条件的文档

你可以通过MongoEngine的__expr查询结合MongoDB的数组聚合运算符实现需求,无需编写原生raw查询。

方法1:用$arrayElemAt定位最后一个元素

利用$arrayElemAt获取列表最后一个元素的指定字段(索引-1代表数组最后一位),再与目标值做相等判断:

X.objects(__expr={'$eq': [{'$arrayElemAt': ['$some_list.val', -1]}, 'Test Value']})

方法2:用$last运算符

$last可直接提取数组的最后一个元素,结合字段路径就能拿到最后一个元素的val值,再做匹配:

X.objects(__expr={'$eq': [{'$last': '$some_list.val'}, 'Test Value']})

两种方式都能精准匹配**仅列表最后一个元素的val等于'Test Value'**的文档,其中$arrayElemAt支持MongoDB 3.2及以上版本,$last需要MongoDB 3.4及以上版本。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 19:02:34