18

私のデータベースでは、オブジェクト ID の配列を保存する必要があります。何を使えばいいですか?このようなもの:

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

またはこのようなもの:

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

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

4

2 に答える 2

25

私は間違いなく、ObjectIds を直接格納する最初のアプローチを使用します。2 番目のアプローチ文字列が 24 バイトであるのに対し、これObjectIdは 12 バイトと同様にスペースを節約します。

また、ObjectId後でオブジェクトを取得するために s を使用する場合は、 asObjectIdを保存すると手間が省けます。

于 2012-09-17T18:20:06.617 に答える
11

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

于 2012-09-17T18:14:47.010 に答える