gpt4 book ai didi

mongodb 引用查询

转载 作者:可可西里 更新时间:2023-11-01 09:38:57 24 4
gpt4 key购买 nike

我在 mongodb 中有以下数据库:

{"Team":{"_id":{"$oid":"5a465ca9150ed3f847f01b92"},"TeamName":"NA"}}
{"Card":{"_id":{"$oid":"5a46626e150ed3f847f01bac"},"Number":1,"Page":1,"Team":[{"$oid":"5a465ca9150ed3f847f01b92"}]}}

它有一张带有团队 ID 的卡片,我正在尝试进行查询以获取特定卡片的团队。我试过:

Team = db.test.findOne({"Card.Number":1})
Team_data = db.test.find({_id:{$in:team.Team}}).toArray()

但是它在第二行给我一个错误:

2018-01-02T15:22:21.112+0000 E QUERY    [thread1] Error: error: {
"ok" : 0,
"errmsg" : "$in needs an array",
"code" : 2,
"codeName" : "BadValue"
} :
_getErrorWithCode@src/mongo/shell/utils.js:25:13
DBCommandCursor@src/mongo/shell/query.js:717:1
DBQuery.prototype._exec@src/mongo/shell/query.js:117:28
DBQuery.prototype.hasNext@src/mongo/shell/query.js:288:5
DBQuery.prototype.toArray@src/mongo/shell/query.js:337:12
@(shell):1:13

谁知道如何解决这个问题?谢谢

最佳答案

这里有几处不正确。

  1. 您在 $in 运算符中引用了不正确的字段引用。应该是 {$in:team.Card.Team}
  2. 您用于比较的字段名称不正确。应该是 Team._id

完整代码

team = db.test.findOne({"Card.Number":1}) 
Team_data = db.test.find({"Team._id":{$in:team.Card.Team}}).toArray()

你也可以整$lookup在一次查询中。

db.test.aggregate([
{"$match":{"Card.Number":1}},
{
"$lookup": {
"from": "test",
"localField": "Card.Team",
"foreignField": "Team._id",
"as": "team_data"
}
},
{ "$project": {"team_data":1} }
])

关于mongodb 引用查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48063635/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com