我正在使用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');
答案 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”。
希望我能帮到你,