2010-07-05 223 views
2

我正在尝试制作一个匹配模型,其中包括在比赛期间排队的球员。所以每场比赛有许多球员和每个球员hasmany比赛。MongoDB和CakePHP模型关联

match = { 
'_id' : ObjectID('978tqwbi9873gofiu'), 
'home' : 'Argentina', 
'away' : 'Brazil', 
'lineup-home' : [ 
    {'name' : 'Lionel Messi', 
    'goals' : '2', 
    'timeon' : 30 
    }, 
    {'name' : 'Diego Maradonna', 
    'goals' : '0', 
    'timeon' : 0 
    }, 
    {'name' : 'Sergio Aguero', 
    'goals' : '0', 
    'timeon' : 0 
    } 
] 
} 

如何在我的CakePHP模型中添加这些'lineup-home'关系以使用我的mongoDB?这就是我的模型看起来像...

class Match extends AppModel { 
    //var $useDbConfig = 'mongo'; 
    var $mongoSchema = array(
     'home' => array('type' => 'string'), 
     'away' => array('type' => 'string'), 
     'lineup-home' => ??? 
    ); 
} 

谢谢。

+0

你有没有得到解决方案,我有同样的问题? – 2010-09-30 10:47:59

回答

0

我觉得用 '阵容回家'=> '阵' 就可以了..

+0

你确定吗?它看起来有点奇怪,它似乎并不工作: var $ mongoSchema = array( 'home'=> array('type'=>'string'), 'away'=> array('type'=' >'string'), 'lineup-home'=> array('type'=>'array') ); – octavian 2010-07-05 21:12:31

0

又有怎样

var $mongoSchema = array(
     'home' => array('type' => 'string'), 
     'away' => array('type' => 'string'), 
     'lineup-home' => array(
      'name' => array('type' => 'string'), 
      'goals' => array('type' => 'string'), 
      'timeon' => array('type' => 'integer'), 
     ) 
    ); 
0

您可以使用此模式:

var $mongoSchema = array(
     'home' => array('type' => 'string'), 
     'away' => array('type' => 'string'), 
     'lineup-home' => array(
      array(
       'name' => array('type' => 'string'), 
       'goals' => array('type' => 'string'), 
       'timeon' => array('type' => 'integer'), 
      ) 
     ) 
    );