gpt4 book ai didi

mongodb - 本地字段和外部字段的查找管道内的项目不起作用

转载 作者:行者123 更新时间:2023-12-02 18:42:50 26 4
gpt4 key购买 nike

我编写了下面几行代码,用于在查找中获取一些特定字段,例如

       $pipeline = array(
array(
'$match' => $query
),
array(
'$lookup' => array(
'from' => 'studentTbl',
'localField' => '_id',
'foreignField' => 'activity_details.activityId',
'pipeline' => [
['$project' => [ '_id' => 1.0, 'activity_details' => 1.0] ],
],
'as' => 'studentsOfActivities'
)
),
....
....
);

return $this->db->activitiesTbl->aggregate($pipeline)->toArray();

基本上,studentTbl 有很多字段和嵌入文档。在上面的代码中,我首先使用外部和本地字段通过查找进行获取,然后确定哪些字段应投影到管道内。

上面的代码不起作用...请帮忙!!!

最佳答案

您可以使用以下聚合

db.collection.aggregate([
{ "$match": $query },
{ "$lookup": {
"from": "studentTbl",
"let": { "activityId": "$_id" },
"pipeline": [
{ "$match": { "$expr": { "$in": ["$$activityId", "$activity_details.activityId"] }}},
{ "$project": { "activity_details": 1 }}
],
"as": "studentsOfActivities"
}}
])

关于mongodb - 本地字段和外部字段的查找管道内的项目不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53857852/

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