双阵列mongodb elemMatch

2024-09-25 10:23:07 发布

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

尝试在双重嵌套数组中使用$elemMatch时出现问题:

假设我有这个a文档:

a = {'cart': [[{'id': 1, 'count': 1}, {'id': 2, 'count': 3}], [{'id': 1, 'count': 5}]]}

我想在id为1且count大于2时选择一个文档:

^{pr2}$

但此查询将选择aout。在

然后我尝试了以下问题:

db.cart.find_one({'cart': {'$elemMatch': {'id': 1, 'count': {'$gt': 2}}}})
db.cart.find_one({'cart': {'$elemMatch': {'id': 2, 'count': {'$gt': 2}}}})
db.cart.find_one({'cart.0': {'$elemMatch': {'id': 1, 'count': {'$gt': 2}}}})
db.cart.find_one({'cart.0': {'$elemMatch': {'id': 2, 'count': {'$gt': 2}}}})

但所有人都没有回报。在

那么$elemMatch是否支持嵌套数组匹配?如果是这样,我该如何调整查询?在


Tags: 文档gtiddbcount数组findone
1条回答
网友
1楼 · 发布于 2024-09-25 10:23:07

考虑到数组中有一个数组,我想您可以尝试类似的方法

db.cart.find_one({'cart': {'$elemMatch': { '$elemMatch' : {'id': 1, 'count': {'$gt': 2}}}}})

相关问题 更多 >