【问题标题】:Inserting record to nested array using MongoDB and PHP使用 MongoDB 和 PHP 将记录插入嵌套数组
【发布时间】:2013-06-18 10:24:36
【问题描述】:

我在 MongoDB 中有一个名为 topic 的集合

topic{
    topic_title: 'thread',
    reply{
        reply_title: 'thread',
        reply_content: 'content'
        reply_created: "2013-06-18 17:54:04" 
    }

}

我想添加对主题的回复,例如:

topic{
    topic_title: 'thread',
    reply{
        reply_title: 'thread',
        reply_content: 'content'
        reply_created: "2013-06-18 17:54:04" 
    }
    {
        reply_title: 'reply1',
        reply_content: 'reply2'
        reply_created: "2013-06-18 17:57:04" 
            }
}

我的代码是这样的:

   $reply = array(
                            "reply_title" => $title,
                            "reply_content" =>$content,
                            "reply_created" => date('Y-m-d H:i:s')
        );
    $document = array('$push' => array("reply" => $reply));

    $id = new MongoId($topicid);
    $topic->update(array("_id"=>$id),$document);

它做了这样的事情

     topic{
           topic_title: 'replytitle'
           reply {
                    reply_title: "replytitle"
                    reply_content: "replycontent"
                    reply_created: "2013-06-18 17:57:12"
                 }

          }
      reply{
            reply{
                    reply_title: "replytitle"
                    reply_content: "replycontent"
                    reply_created: "2013-06-18 17:57:12"
             }
            reply{
                    reply_title: "replytitle"
                    reply_content: "replycontent"
                    reply_created: "2013-06-18 17:57:12"
             }
           }

我真的很难做一件简单的事情。这是向回复数组添加回复。有什么帮助吗?

【问题讨论】:

    标签: php mongodb


    【解决方案1】:

    我有点不清楚您的文档结构是什么,因为您发布的不是有效的 JSON。但假设topic.reply 应该是一个文档数组,您可以像这样使用$push 运算符:

    $topic->update( array( "_id" => $id ), array( "$push" => array( "topic.reply", $reply ) ) );
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-12-05
      • 2015-04-02
      • 2021-02-02
      • 2021-01-13
      • 1970-01-01
      • 2018-06-22
      • 2015-08-24
      相关资源
      最近更新 更多