json - Mongodb嵌套集合检索
问题描述
我有一个具有以下格式的 MongoDB 集合:
{
"_id" : ObjectId("5b6b112d1bbd972848b97df4"),
"team" : "Switzerland",
"Game" : [
{
"City" : "Nizhny Novgorod",
"T2N" : "Costa Rica",
"T1N" : "Switzerland",
"ST" : "Nizhny Novgorod Stadium",
"T1S" : "2",
"Date" : "6/27/2018",
"T2S" : "2"
},
{
"City" : "Kaliningrad",
"T2N" : "Serbia",
"T1N" : "Switzerland",
"ST" : "Kaliningrad Stadium",
"T1S" : "2",
"Date" : "6/22/2018",
"T2S" : "1"
},
{
"City" : "Rostov-on-Don",
"T2N" : "Brazil",
"T1N" : "Switzerland",
"ST" : "Rostov Arena",
"T1S" : "1",
"Date" : "6/17/2018",
}]
}
我正在尝试运行以下查询: db.test.find({"Game.T1S":{$gte:3}}).pretty() 但这会返回以下格式的数据:
{
"_id" : ObjectId("5b6b112d1bbd972848b97df4"),
"team" : "Switzerland",
"Game" : [
{
"City" : "Nizhny Novgorod",
"T2N" : "Costa Rica",
"T1N" : "Switzerland",
"ST" : "Nizhny Novgorod Stadium",
"T1S" : "2",
"Date" : "6/27/2018",
"T2S" : "2"
},
{
"City" : "Kaliningrad",
"T2N" : "Serbia",
"T1N" : "Switzerland",
"ST" : "Kaliningrad Stadium",
"T1S" : "2",
"Date" : "6/22/2018",
"T2S" : "1"
},
{
"City" : "Rostov-on-Don",
"T2N" : "Brazil",
"T1N" : "Switzerland",
"ST" : "Rostov Arena",
"T1S" : "1",
"T2S" : "3"
"Date" : "6/17/2018",
}]
}
我希望结果是公正的
db.test.find({"Game.T1S":{$gte:3}}).pretty() 但这会返回以下格式的数据:
{
"_id" : ObjectId("5b6b112d1bbd972848b97df4"),
"team" : "Switzerland",
"Game" : [
{
"City" : "Rostov-on-Don",
"T2N" : "Brazil",
"T1N" : "Switzerland",
"ST" : "Rostov Arena",
"T1S" : "1",
"T2S" : "3"
"Date" : "6/17/2018",
}]
}
也就是说,游戏的结果应该只包含 T1S >= 3 的记录,而不是第一个输出中的其他记录。有什么办法可以做到这一点?
解决方案
推荐阅读
- django - 比较 Django 中的两个表
- python - Google Codejam 2020 资格赛:问题 3
- javascript - 将文本字段输入除以集数,显示结果
- mongodb - 使用 com.mongodb.client.model.Updates.set 在数组中设置项目
- c++ - 如何使用 C++ 将用户定义的变量传递到 MySQL 数据库表中?
- webpack - Webpack, sass-loader w/ node-sass 无法解析模块 @import ("Unexpected character '@'")
- css - 使用 .scss 文件作为模块而不用 .modules create-react-app 命名它们
- codenameone - 如何使用代号一中的库?
- c# - EmguCV - Canny 函数抛出 _src.depth()==CV_8U
- r - 从数据集中删除值