dtt83024 2014-10-01 17:14
浏览 178
已采纳

Mongo嵌套对象数组更新

I'm trying to update a value in a document and i haven't seen an example that shows me what i need to do. Here is how my document looks:

{
    "_id" : ObjectId("5429e8a53150d03d541c7a53"),
    "foo" : {
        "bar" : {
            "0" : {
                "email" : {
                    "0" : "bob@aol.com"
                }
            }
        }
    }
}

This is of course not my real object but represents the structure. how do i update bob@aol.com to be whatever@whocares.net ?

Also how would i remove this same element?

Also (for bunus points) how would i update this using the php Mongo class?

  • 写回答

1条回答 默认 最新

  • dongyouji7022 2014-10-01 20:39
    关注

    Ok i figured it out. This is how you do it in the console:

    db.test.update({"foo.bar.0.email" : {"0":"bob@aol.com"} },{$set:{"foo.bar.0.email.0":"whatever@whocares.net"}});
    

    And this is how you do it in PHP using the Mongo class

    $db = new Mongo("connection stuff");
    
    $condition = array('foo.bar.0.email' => array('0' => 'bob@aol.com'));
    $data = array('$set' => array('foo.bar.0.email.0' => 'whatever@whocares.net'));
    
    $db->test->update($condition, $data);
    

    I hope this helps someone because it took me several hours to figure this out.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 乌班图ip地址配置及远程SSH
  • ¥15 怎么让点阵屏显示静态爱心,用keiluVision5写出让点阵屏显示静态爱心的代码,越快越好
  • ¥15 PSPICE制作一个加法器
  • ¥15 javaweb项目无法正常跳转
  • ¥15 VMBox虚拟机无法访问
  • ¥15 skd显示找不到头文件
  • ¥15 机器视觉中图片中长度与真实长度的关系
  • ¥15 fastreport table 怎么只让每页的最下面和最顶部有横线
  • ¥15 java 的protected权限 ,问题在注释里
  • ¥15 这个是哪里有问题啊?