3
我對MongoDB和Lithium都是新手,我無法真正找到使用嵌套文檔的「好方法」。我注意到,當我嘗試在Lithium和MongoDB中使用嵌套文檔/數組
$user = Users::find('first' ...);
$user->somenewfield = array('key' => 'val');
我得到的「somenewfield」是一個Document對象。但也有一個DocumentArray類 - 它們之間有什麼區別?
當我打電話
$user->save();
這導致蒙戈(預期):
"somenewfield" : {
"key": "value"
}
OK,但是當我後來想一個新的鍵值添加到陣列中,並嘗試
$user->somenewfield['newkey'] = 'newval';
var_dump($user->somenewfield->to('array')); // shows the old and the new key-value pairs
$user->save(); // does not work - the new pair is not added
什麼是正確的方式來添加新的陣列使用鋰文檔?更新數組/向數組添加新值的正確方法是什麼?我應該爲alywas給出數組值的鍵嗎?
感謝您的幫助提前。我有點卡住...閱讀文檔,閱讀代碼...但在某些點很難找出所有的東西:)
編輯: 我在最後發現的是,我的方式應使用嵌套的數組是$推和拉$:
Users::update(array('$push' => array('games' => (string) $game->_id)),
array(
'_id' => $this->user()->_id,
'games' => array('$ne' => (string) $game->_id)),
array('atomic' => false));
偉大的發現在替代語法,更乾淨。 – Tom 2013-02-04 07:31:08
如果有其他人回來,請閱讀鋰電測試!鋰有數百個,他們將幫助你更好地理解框架。 – Chris 2013-02-05 05:22:52