2011-10-14 55 views
0

我正在開發一個使用Codeigniter和MongoDB的API。 我用戶文件我有一個項目稱爲以下是一個數組。 我需要將包含用戶全名和ID的子文檔推送到此數組中。如何使用MongoDB將子文檔推入數組

每次我嘗試子文檔最終成爲子陣列。

我使用的亞歷克斯Bilbie的MongoDB的圖書館,這是我的查詢:

$this->mongo_db->where(array('_id'=>$user_id))->push('following', array("{id: 'aa', fullname: 'James Bond'}"))->update('users'); 

我需要的結果是這樣的:

following : [ 
    { fullname : "James", id : aa}, 
    { fullname : "Jane", id : bb} 
    ] 

更新:

我解決它這樣:

$this->mongo_db->where(array('_id'=>$user_id))->push('following', array('fullname'=>'Earl Spencer','id'=>'bb'))->update('users'); 

回答

0
String fullname = "James"; 
    String id = "aa" 
    var myResult = this.mongo_collections_Users.FindAndModify(

    Query.And(Query.EQ("_id", new ObjectId(id_as_string))), 
    SortBy.Ascending("_id"), 
    Update.PushWrapped<item_following>("following", new item_following(fullname, id))), 
    true 
); 

此代碼將找到文檔集合「用戶」女巫有特定的_id。 之後,將「推」(添加)一個新的項目到數組「後面」。

如果您想存儲對用戶的引用,請使用「MongoDbRef」,而不是新的「item_following」,請 。

希望我能幫到你,

相關問題