Arrays 多数组的Laravel查询

Arrays 多数组的Laravel查询,arrays,laravel,mongodb,Arrays,Laravel,Mongodb,我在Laravel Mongodb收集了一些评论,结构如下: 这是一条没有回复的评论,但一条评论可能有多条回复,正如您所看到的,count将是回复编号,edges字段将有不同的回复数组,如下所示: 这张图片有3个回复,我想写一个查询,可以通过所有3个元素,并获得具体的“id”值,我不知道如何做到这一点 $getUser = \App\Instacomment::where('comment.edge_threaded_comments.edges.node.owner.id' , $requ

我在Laravel Mongodb收集了一些评论,结构如下:

这是一条没有回复的评论,但一条评论可能有多条回复,正如您所看到的,count将是回复编号,edges字段将有不同的回复数组,如下所示:

这张图片有3个回复,我想写一个查询,可以通过所有3个元素,并获得具体的“id”值,我不知道如何做到这一点

$getUser = \App\Instacomment::where('comment.edge_threaded_comments.edges.node.owner.id' , $request->cm_thread)->get();

我编写了这个查询,但不起作用,返回null

请分两步执行。1. $getNodes=\App\Instacomment::where('comment.edge\u threaded\u comments.edges',$request->cm\u thread)->get();2. $getUser=迭代$getNodes并将id添加到$getUser列表中。若要确保从步骤1中获得所需的内容,请尝试使用var_dump($getNodes)查看是否获得所有节点。“$request->cm_thread”具有注释id,“$getNodes=\App\Instacomment::where('comment.edge_threaded_comments.edges',$request->cm_thread)->get();”将返回null!两个步骤对性能不好,我的数据库中有11k条注释…问题在于where语句。您可以先过滤掉id为的注释。那么你就不必处理11k条评论了。稍后,只需在检索到的唯一注释的边缘循环。其中('comment.edge\u threaded\u comments.edges.node.owner.id',$request->cm\u thread)。在内部,左侧值应与右侧值匹配。那么where语句将起作用。但在您的例子中,您正试图将node.owner.id与注释id进行比较。如果cm_线程具有注释id,则正确的比较应该在何处('comment.id',$request->cm_线程)。