1

I am trying to set up a commenting system using the example on http://docs.mongodb.org/manual/use-cases/storing-comments/

However I am confused on the discussion_id. How do I set that in PHP? Is that a datatype?

{
    _id: ObjectId(...),
    discussion_id: ObjectId(...),
    slug: '34db',
    posted: ISODateTime(...),
    author: {
              id: ObjectId(...),
              name: 'Rick'
             },
    text: 'This is so bogus ... '
}
4

3 回答 3

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 不能判断任何关系,也不会,但是这个讨论 ID 不必在创建文档后设置,如上所示,因为MongoId可以随时调用对象,你实际上可以覆盖_idon insert 到 MongoDB . 如果您想先形成对象,检查它们的完整性然后保存它们,这将特别有用。

于 2012-10-19T07:22:34.190 回答
1

Discussion_id的类型为ObjectId。在本例中,它包含父讨论文档的 _id。

创建讨论文档时,mongodb会为其分配一个_id。您可以在为每个评论创建文档时使用此值。

于 2012-10-19T01:26:51.097 回答
0

是的,ObjectID 是 BSON 数据类型。在此处了解更多信息:http ://www.mongodb.org/display/DOCS/Object+IDs

需要更多地了解您使用的语言和技术才能真正告诉您“如何设置”。

于 2012-10-19T01:27:53.440 回答