[英]Inserting record to nested array using MongoDB and PHP
我在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"
}
}
我真的很难做一件简单的事情。 这是将回复添加到回复数组。 有什么帮助吗?
我不清楚您的文档结构是什么,因为您发布的内容不是有效的JSON。 但是假设topic.reply
应该是一个文档数组,则可以使用$push
运算符,如下所示:
$topic->update( array( "_id" => $id ), array( "$push" => array( "topic.reply", $reply ) ) );
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.