作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
mlb_players
是一个集合,其中 dataId
作为字段,teamData
作为另一个子文档,其中包含 teamId
和dataId
。
等效的 MySql:SELECT p.playerId FROM mlb_players p INNER JOIN mlb_teams t ON p.dataId=t.dataId
我想将此 mysql 查询转换为 mongoDB 的等效项。
目前我正在使用下面的 mongo 查询,但出现错误:
db.getCollection('mlb_players').find({$where: "this.dataId == this.teamData.dataId"});
但是它给了我 0 条记录,但是在 mysql 中使用相同的数据却给了我 50 条记录。
作为引用,文档 1 如下所示:
{
"_id" : ObjectId("55574d05e03ce60f64797432"),
"dataId" : "87c484cc-e672-4a34-ab02-cc29101d8a52",
"teamId" : "TB",
"posId" : "SS",
"playerName" : "Nick Franklin",
"playerNameAbbr" : "N. Franklin",
"playerJersey" : 2,
"playerStatus" : "D",
"playerSalary" : 5500,
"salarySuggest" : 0,
"playerProj" : 0.0,
"playerAvg" : 0.0,
"manualSalary" : 1,
"playerImg" : 0,
"hasImage" : 0,
"used" : 0,
"teamData" : {
"_id" : ObjectId("554239eb4e7235204100002a"),
"teamId" : "TB",
"dataId" : "87c484cc-e672-4a34-ab02-cc29101d8a52",
"teamName" : "Tampa Bay Rays",
"teamAbbr" : "TB"
}
}
请提出建议。提前致谢
最佳答案
您可以使用aggregation和 $eq
运算符
db.mlb_players.aggregate(
[
{ $project: { "m": { $eq: [ "$dataId", "$teamData.dataId" ]}}},
{ $match: { "m": true }},
{ $project: { "_id": 1 }}
]
)
关于mysql - 如何将字段与Mongo中子文档的另一个字段进行匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30276105/
我是一名优秀的程序员,十分优秀!