對於MongoDB來說,這很新穎,並且有一些小麻煩。在Mongo中,我從數據庫中獲得的每個對象都有特殊的_id
字段。這個字段當然需要唯一標識我的對象。使用Mongo結果對象 - 與_id字段相關的問題
現在在PHP中,我的對象以特殊的_id字段作爲數組返回。
Array (
[_id] => MongoId Object (
[$id] => 547dc96b5c5db8a80f000029
)
[somekey] => somevalue
)
當編碼到JSON,通過一些前端發送和再次解碼回在PHP中,_id領域當然有投/銷燬。
爲了避免這種情況,我想我必須在從Mongo數據庫獲取_id字段後才能投出。
Array (
[_id] => 547dc96b5c5db8a80f000029
[somekey] => somevalue
)
現在它可以安全地編碼和解碼,但我想。
但是這個對象是否會在再次保存在MongoDB中時工作?即使在這種形式下,Mongo是否會使用_id字段作爲Mongo ObjectId,還是需要相應地重新設置它?
有沒有更好的方法呢?
更新 我只是試圖用_id作爲MongoId多次保存一個對象,並將它作爲字符串_id。使用MongoId的對象是 而不是將具有相同_id的那些對象替換爲字符串,請在此輸入問題。
這將使我從數據庫中獲得的每個對象都需要它被_id手動轉換,並且在從某個使用客戶端的JSON接收到它之後,我必須再次將evrry _id重新轉換爲MongoId。 加載更大的對象列表時,這可能會造成嚴重的性能影響。
有沒有更好的方法?
更改字符串代表'_id'回到對象? '$ array ['_ id'] = new MongoId('547dc96b5c5db8a80f000029');' – 2014-12-02 15:17:29
@Glavić所以你認爲我必須重新發送每個_id到MongoId對象,然後再發送到數據庫? – ToBe 2014-12-02 15:18:15
最簡單的方法是測試這個,但我認爲如果'_id'呈現爲字符串,它將替換mongodb中的對象。請嘗試... – 2014-12-02 15:20:15