首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MongoDB + PHP:如何使用特定的键将项推送到数组中?

MongoDB + PHP:如何使用特定的键将项推送到数组中?
EN

Stack Overflow用户
提问于 2012-05-03 03:47:46
回答 2查看 3.8K关注 0票数 1

在MongoDB-PHP中,我使用以下示例代码将新条目推送到集合内的数组的末尾……

代码语言:javascript
复制
$data = array(
        "domain"=>"superduperyoyo.com",
        "number"=>123,
        "week"=>5,
        "year"=>2012
);
$db->domains->save(
        array( 'someid' => $someid),
        array( '$push' => array( 'data' => $data ))
);

这将返回类似于0,1,2,3....的键。即。

代码语言:javascript
复制
[someid] => somesupercoolid123
[data] => Array
    (
        [0] => Array
            (
                [domain] => superduperyoyo.com
                [number] => 123
                [week] => 5
                [year] => 2012
            )
        [1] => Array(...)
        [2] => Array(...)
    )

我想要做的是将YearWeekNumber存储为密钥,如下所示...

代码语言:javascript
复制
 [someid] => somesupercoolid123 
   [data] => Array
        (
            [201205123] => Array
                (
                    [domain] => superduperyoyo.com
                    [number] => 123
                    [week] => 5
                    [year] => 2012
                )
            [201206123] => Array(...)
            [201207123] => Array(...)
        )

如何将密钥与新条目一起保存/更新?我假设你不会使用$push。您只需使用.save或.update,但是如何传递密钥呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-05-03 05:21:53

您可以使用$set来完成此操作

代码语言:javascript
复制
$data = array(
        "domain"=>"superduperyoyo.com",
        "number"=>123,
        "week"=>5,
        "year"=>2012
);
$db->domains->update(
        array( 'someid' => $someid),
        array( '$set' => array( 'data' => array( 201205123 => $data )))
);

然而,我不建议这样做。最好用这个"201205123“值设置另一个键,否则您将无法对此值执行范围查询或设置索引。

票数 2
EN

Stack Overflow用户

发布于 2012-07-12 07:33:50

代码语言:javascript
复制
$data = array(
        "domain"=>"superduperyoyo.com",
        "number"=>123,
        "week"=>5,
        "year"=>2012
);
代码语言:javascript
复制
 $update = array(
        '$push' => array('data.201205123'  =>  $data )
);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10420635

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档