【问题标题】:Doctrine Mongodb references()学说 Mongodb 参考资料()
【发布时间】:2014-08-18 08:24:20
【问题描述】:

是否可以使用学说 mongodb createquerybuilder() 添加对文档的多个引用? 这是我想做的一个例子: 我有 2 个集合:用户和运动处于 1:n 关系中,因此一个用户有多个运动,一个运动指的是一个用户。

要从用户那里获取动作,我可以这样做

$user->getMovements();

我也可以像这样调用学说 createQueryBuilder:

$query->createQueryBuilder('Movement');
$query->field('user')->references($user);

两者都给了我预期的结果。但是如果我想在一个查询中获取 2 或 3 个用户的移动怎么办?

是否可以做类似的事情(我试过但没用)

$q->field('user')->references($user1);
$q->field('user')->references($user2);
// etc.

我坚持这样的查询。感谢帮助 ! 科尔扎克。

【问题讨论】:

    标签: mongodb symfony reference doctrine-orm doctrine


    【解决方案1】:

    好的,所以我找到了一个可能不是最好的解决方案,但它确实有效。

    而不是做

    $q->field('user')->references($user);
    

    你可以的

    $->field('user.$id')->equals(new \MongoId($user->getId());
    

    所以如果你有一个用户数组,你可以做类似的事情

    $userIds = array();
    foreach ($users as $user) {
        $userIds[] = new \MongdoId($user->getId());
    }
    

    然后是查询:

    $q->field('user.$id')->in($userIds);
    

    希望对某人有所帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-09
      • 2011-02-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多