Arrays 如何使用mongodb查询json文件中数组的更多信息?
“following”显示用户跟踪的人的用户ID。 我希望有一个输出查询,显示用户ID和他只关注的人的工资(不需要年龄和用户的工资)。我看到可以使用$lookup(),但我不确定是否使用它 我想要的输出如下所示,我可以知道这是否可能吗?我也愿意接受任何其他输出。提前谢谢你Arrays 如何使用mongodb查询json文件中数组的更多信息?,arrays,json,database,mongodb,nosql,Arrays,Json,Database,Mongodb,Nosql,“following”显示用户跟踪的人的用户ID。 我希望有一个输出查询,显示用户ID和他只关注的人的工资(不需要年龄和用户的工资)。我看到可以使用$lookup(),但我不确定是否使用它 我想要的输出如下所示,我可以知道这是否可能吗?我也愿意接受任何其他输出。提前谢谢你 { "userid": 1, "following": [2, 3], "salary": 1000, "age": 19 }, { "userid": 2, "following": [], "salary": 2000,
{
"userid": 1,
"following": [2, 3],
"salary": 1000,
"age": 19
},
{
"userid": 2,
"following": [],
"salary": 2000,
"age": 25
},
{
"userid": 3,
"following": [2],
"salary": 1500,
"age": 20
},
您可以使用将集合加入自身,然后使用stage排除不需要的字段,如下所示:
{
"userid": 1,
"following": [{2, 2000}, {3, 1500}]
},
{
"userid": 2,
"following": []
},
{
"userid": 3,
"following": [{2, 2000}]
}
输出与您想要的不一样,但正如您所说,您愿意接受我发布的所有建议:
db.collection.aggregate([
{
$graphLookup: {
from: "collection",
startWith: "$following",
connectFromField: "following",
connectToField: "userid",
as: "following",
maxDepth: 0
}
},
{
$project: {
"_id": 0,
"userid": 1,
"following.salary": 1,
"following.userid": 1
}
}
])
游乐场:
[
{
"following": [
{
"salary": 2000,
"userid": 2
},
{
"salary": 1500,
"userid": 3
}
],
"userid": 1
},
{
"following": [],
"userid": 2
},
{
"following": [
{
"salary": 2000,
"userid": 2
}
],
"userid": 3
}
]