Codeigniter 如何使用MongoDB将子文档推入数组

Codeigniter 如何使用MongoDB将子文档推入数组,codeigniter,mongodb,Codeigniter,Mongodb,我正在使用Codeigniter和MongoDB开发一个API。 我在用户文档中得到了一个名为following的项,它是一个数组。 我需要将包含用户全名和ID的子文档推送到该数组中 每次我尝试时,子文档都会变成子数组 我正在使用Alex Bilbie的MongoDB库,以下是我的查询: $this->mongo_db->where(array('_id'=>$user_id))->push('following', array("{id: 'aa', fullname:

我正在使用Codeigniter和MongoDB开发一个API。 我在用户文档中得到了一个名为following的项,它是一个数组。 我需要将包含用户全名和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');
String fullname=“James”;
字符串id=“aa”
var myResult=this.mongo\u collections\u Users.FindAndModify(
和(Query.EQ(“\u id”,新ObjectId(id\u as\u string)),
排序方式为升序(“\u id”),
Update.PushWrapped(“以下”,新项目_以下(全名,id)),
符合事实的
);
此代码将在具有特定id的集合“用户”中查找文档。 之后,将“推”(添加)一个新项到数组“following”中

如果您想存储对用户的引用,而不是一个新的“下面的项目”,请 使用“MongoDbRef”

希望我能帮助你

  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
  );