1

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 ... '
}
4

3 に答える 3

1

Discussion_idのタイプはObjectIdです。この例では、親ディスカッションドキュメントの_idが含まれています。

ディスカッションドキュメントが作成されると、mongodbによって_idが割り当てられます。コメントごとにドキュメントを作成するときに、この値を使用できます。

于 2012-10-19T01:26:51.097 に答える
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は関係を判断できないことを覚えておく必要がありますが、MongoIdオブジェクトはいつでも呼び出すことができ、_idMongoDBへの挿入を実際にオーバーライドできるため、上記のようにドキュメントを作成した後にこのdiscussion_idを設定する必要はありません。 。これは、最初にオブジェクトを形成し、それらの整合性をチェックしてから保存する場合に特に便利です。

于 2012-10-19T07:22:34.190 に答える
0

はい、ObjectIDはBSONデータ型です。詳細はこちら:http ://www.mongodb.org/display/DOCS/Object+IDs

「それを設定する方法」を実際に伝えるために、使用している言語とテクノロジーについてもっと知る必要があります。

于 2012-10-19T01:27:53.440 に答える