我正在尝试使用http://docs.mongodb.org/manual/use-cases/storing-comments/
上的示例设置评论系统但是我对于discussion_id感到困惑。我如何在PHP中设置它?这是一种数据类型吗?
{
_id: ObjectId(...),
discussion_id: ObjectId(...),
slug: '34db',
posted: ISODateTime(...),
author: {
id: ObjectId(...),
name: 'Rick'
},
text: 'This is so bogus ... '
}
答案 0 :(得分:1)
discussion_id的类型为ObjectId。在此示例中,它包含父讨论文档的_id。
创建讨论文档时,mongodb将为其分配一个_id。您可以在为每条评论创建文档时使用此值。
答案 1 :(得分:1)
为了得到答案,MongoDB不会为您设置discussion_id
。它完全没有关系行为,因为它无法预测某些对象之间的内部关系。
您需要使用讨论行的discussion_id
从PHP中自行分配_id
,如下所示:
$dis = $db->discussion->findOne(array('name' => 'my awesome new one'));
$db->comments->insert(array('discussion_id' => $dis['_id'], 'text' => 'trololol'));
所以你需要记住,MongoDB无法判断任何关系,但是不会在创建文档后如上所示设置此discussion_id,因为可以随时调用MongoId
对象而你实际上可以覆盖插入到MongoDB中的_id
。如果您想先形成对象,检查它们的完整性然后保存它们,这将特别有用。
答案 2 :(得分:0)
是,ObjectID是BSON数据类型。点击此处了解详情:http://www.mongodb.org/display/DOCS/Object+IDs
需要了解更多有关您使用的语言和技术才能真正告诉您“如何设置”。