我在教义手册中找不到如何进行非常简单的查询。我不知道如何使用 MongoDb 管理相当于 SQL“JOIN ...”的内容。
abstract class Topic
{
/**
* @MongoDB\Id
*/
protected $id;
}
abstract class Message
{
/**
* @MongoDB\Id
*/
protected $id;
/**
* @MongoDB\Date
*/
protected $date;
/**
* @MongoDB\ReferenceOne(targetDocument="Topic")
*/
protected $topic;
}
abstract class User
{
/**
* @MongoDB\Id
*/
protected $id;
/**
* @MongoDB\ReferenceMany(targetDocument="Message")
*/
protected $messages;
}
我有一个用户 ID 和一个主题 ID。我想要:
1) 查找来自用户的最新消息
2) 查找来自用户的关于该主题的最新消息
$dm->find('User', $id)->getMessages() 给了我一个“PersistentCollection”
$dm->find('User', $id)->getMessages()->getValues() 给了我消息数组,但是我必须使用 PHP 循环,我确信有一种方法可以创建一个查询来做到这一点......
我应该使用 map 还是 reduce ?
有人能帮我吗 ?谢谢 !