【问题标题】:Using manual referencing with MongoDB and PHP在 MongoDB 和 PHP 中使用手动引用
【发布时间】:2016-06-11 12:27:04
【问题描述】:

我有 2 个收藏:

'用户'集合

_id: ObjectID('56c9a824f4b233dfd30041b3')
name: Luke Skywalker
username: jedimaster23

'projectInfo'集合

_id: 56d1d830f4b233ded30041c3
projectName: L
startDate: 24 April 2016
users_id: ObjectID('56c0abb7f4b233ba020041b3')
saved_at: February 27, 2016 5:09 PM

每次用户创建项目时,他们的用户 ID 都会存储在 projectInfo 集合和 users 集合中,因此 projectInfo 集合中有一个名为 user_id 的手动引用。

我只想列出每个用户创建的所有项目。我现在的查询是:

    $userTest = $user->_id; // get the userid from the current session

    $findResult = $usersCollection->findOne(array('_id'=> new MongoID($userTest)), array('user_id'=>1));//get current user

    $result = $collection->find(array('_id' => array('$in' => $findResult['user_id'])));

但是,尽管我知道我登录的用户创建了许多项目,但这不会返回任何记录。

谁能告诉我我做错了什么,这是我第一个使用 MongoDB 的项目,所以还处于学习阶段

【问题讨论】:

    标签: php mongodb


    【解决方案1】:

    为什么不这样:

     $currentUserId = $user->_id; // get the userid from the current session
    
     $result = $projectCollection->find(array('users_id' => new MongoID($currentUserId));
    

    更新为更简单的解决方案

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-05-05
      • 1970-01-01
      • 2016-02-23
      • 2015-12-21
      • 1970-01-01
      • 2018-06-09
      相关资源
      最近更新 更多