我在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"
}
}
我真的很难做一件简单的事情。这是对回复数组添加回复。有任何帮助吗?
答案 0 :(得分:0)
由于您发布的内容不是有效的JSON,我对您的文档结构有点不清楚。但假设topic.reply
应该是一个文档数组,您可以像这样使用$push
运算符:
$topic->update( array( "_id" => $id ), array( "$push" => array( "topic.reply", $reply ) ) );