如何使用MongoDB将子文档推送到数组中

时间:2011-10-14 07:21:59

标签: codeigniter mongodb

我正在使用Codeigniter和MongoDB开发API。 我在用户文档中得到了一个名为following的项目,它是一个数组。 我需要将包含用户fullname和ID的子文档推送到此数组中。

每次我尝试子文档最终都是一个子数组。

我正在使用Alex 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');

1 个答案:

答案 0 :(得分: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
  );

此代码会将文档转换为集合“Users”,具有特定的_id。   之后将“推”(添加)一个新项目到“跟随”数组。

如果您想存储对用户的引用,请提供新的“item_following”   使用“MongoDbRef”。

希望我能帮到你,