php中mongodb的内部连接

zujrkrfu  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(298)

好吧,我正试图把这个查询从mysql翻译成mongodb,因为我需要它来优化我的数据,但是到目前为止我什么也没有实现。。。
mysql查询

SELECT notifications.entity_id 
FROM notifications
INNER JOIN discussions
ON notifications.entity_id = discussions._id 
WHERE notifications.subscribers = 1

不管我怎么努力,我似乎都无法接近另一张table。。。我用php做的很简单,但由于优化程度很低甚至没有优化,这会引起很多麻烦。。。

public function getData($userId) {

    $wheres =   ['subscribers' => $userId];
    $data   =   $this->get($wheres, ['entity_id']); # works for notifications table that I have predefined for this function

    $wheres =   ['_id' => $data['_id']];
    $data  =   $this->get_discussions($wheres, []); #queries discussions table

    return $data;
}
mcvgt66p

mcvgt66p1#

我的mysql查询解决方案是

db.notifications.aggregate({
    {$match : {subscribers : 1}},
    $lookup:{
        from:"discussions",
        localField:"entity_id",
        foreignField:"id",
        as:"entityids"
    },
    { "$unwind": "$entityids" }
})

在mongo shell上运行这个。您也可以使用php方法在php代码中启动它。希望这对你有帮助。

相关问题