1

私はこのようにスキーマを設定しています:

{
 "_id": ObjectId("5130ea935b51eafc13000032"),
 "items": [
           {
             "id": ???,
             "title": "yes"
           },
           {
             "id": ???,
             "title": "no"
           }
          ]
 }

コレクション全体で、すべてのサブドキュメントに一意の ID を割り当てる最良の方法は何ですか?

MongoId()オブジェクトを使用する必要がありますか? PHP のuniqid()関数 ? 単純な増分?... なぜ ?

4

1 に答える 1

1

これはよくある質問ですが、それでも ID に関するトリッキーな質問です。

まず、ドキュメントのリストが埋め込まれている場合は、サブジェクト エリアを確認します。それらのオブジェクトには自然な ID がありますか (書籍に ISBN 番号があるように)? はいの場合 - ID として簡単にフラグを立てることができ、コードでもう少し役立つでしょう。データが見やすくなります -- アプリケーション ボンド。

サブオブジェクトに自然な ID がない場合は、MongoId オブジェクトを使用することをお勧めします。これは既に実装されており、新しい一意の ID の生成について考える必要はありません (増分であっても)。そのIDを手動で新しいオブジェクトに設定します。

それが役立つことを願っています。幸運を。

于 2013-03-05T21:57:34.760 に答える