如何在mongodb中使用嵌入列表的$gt和$lt

2024-05-23 20:03:25 发布

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

我使用的是pymongo,目前只有一个集合。该系列收藏有代表足球联赛比赛的文件。每场比赛都有目标。目前,目标是作为match对象中包含的列表来实现的:

{'matchID':1000,
  'goals':[{'goalID':200,'scorer':'A'},
           {'goalID':201,'scorer':'B']}
          ]
}
{'matchID':1001,
  'goals':[{'goalID':211,'scorer':'C'},
           {'goalID':212,'scorer':'D']}
          ]
}

我要做的是查询ID大于201的所有目标。从上面的数据中,我可以得到211和212号目标。在

如何在mongodb中实现这一点-我正在尝试类似于:

^{pr2}$

但这对我没有任何帮助。我应该将目标拆分为单独的集合并手动引用吗?一旦一个目标被输入,它就再也不会被触碰——它将是只读的。在


Tags: 文件数据对象id目标列表mongodbmatch
1条回答
网友
1楼 · 发布于 2024-05-23 20:03:25

这个查询有几个问题:

  1. 数组中嵌套的对象的goalID元素的正确虚线域名称应为“goals.goalID”,即删除前面的“match.
  2. $gt(和朋友:$gte$lt$lte)的正确顺序是field: {$operator: value},如:

    db.mycollection.find({"goals.goalID": {"$gt": 201}})

相关问题 更多 >