2012-09-17 33 views
18

私のデータベースにはオブジェクトIDの配列を格納する必要があります。私は何を使うべきですか?このようなObjectIdの配列を格納するMongoDB

[ObjectId("50350e12a36feb1be6000364"), ObjectId("57350e12a37fef1be6000922"), ObjectId("10350e17d34ffb1be6200925")] 

か何か:このような何か

["50350e12a36feb1be6000364", "57350e12a37fef1be6000922", "10350e17d34ffb1be6200925"] 

私は2番目とスペースを節約し、その後ObjectIdにキャストが、私はこのアプローチを使用することによって何を失うのですだろうか? ObjectIdはリレーショナルデータベースの外部キーのように動作しますか?

答えて

25

私は間違いなくObjectIdを直接格納する最初のアプローチに行きます。これは、ObjectId is 12 bytesのようにスペースを節約しますが、2番目のアプローチ文字列は24バイトです。

また、ObjectIdを使用して後でオブジェクトをフェッチする場合、ObjectIdとして保存すると面倒な作業が省けます。

11

そうしないと良い理由がない限り、それらをObjectIdの配列として格納します。それはよりコンパクトです(12バイト対24)、格納されているものをより正確に反映します。また、次のObjectId参照のドライバレベルのサポートを有効にすることもできます。

+4

+1ええ、私は問題のObjectIdsのサイズについて基本的な誤解があると思います。 –

関連する問題