當更改某個文檔(不確定結構究竟如何)時,我想在另一個集合中創建該文檔的備份,然後將其保存回當前集合。做備份,我想這一點:PHP在MongoDB中複製文檔,替換它的MongoID
$mongoDbObj = $collection->findOne($filter);
...
$collectionBackup->insert($mongoDbObj,true);
...但是這隻能一次因爲MongoID被複制。當我嘗試再次備份同一文檔時,MongoID已經存在於backupCollection中。所以我的問題是:
我可以複製一個MongoDB文檔在PHP中,用新的MongoID覆蓋MongoID,然後插入到另一個集合中,而不更改原始文檔的MongoID?
這個問題簡化爲:我怎樣才能做到這一點:
$mongoDbObj = $collection->findOne($filter);
...
$collectionBackup->insert($mongoDbObj,true);
// change MongoId so the next line doesn't throw exception
$collectionBackup->insert($mongoDbObj,true);
// save my object back with the original MongoID
$collection->save($mongoDbObj);
也有利於將如何克隆/複製MongoDB的文檔,那麼這將是容易解決的問題只需在複製的文檔中添加一個新的MongoID即可。
好一點:一個MongoDB的文件僅僅是一個PHP數組,這樣你就可以像這樣對待它。謝謝!順便說一下:Tobias,歡迎來到Stackoverflow! – Akku 2013-04-12 04:45:13