0

今、ショッピングサイトのプログラミングをしているのですが、頭の中で解決できないことがあり、

製品には少なくとも 5 つの写真があり、製品のプライマリ キーを使用して、mysql のフォルダーに配置する必要があります。フォルダー構造は次のようになります。

for example the product id is, 756234,

so the path to the picture would be,

image.example.com/75/62/34/product.jpg

問題は、今私は mongodb を使用しており、Mongodb の objectid は非常に異なり、毎回変更されます。どうすればこのようなフォルダー構造を作成できますか? 解決策はありますか?ありがとうございました :)

4

4 に答える 4

1

できることは、別の属性を維持してそれを一意のインデックスにし、別のコレクションの自動挿入値を維持して、新しいドキュメントの挿入に使用できるようにすることです。そうすれば、古い自動インクリメントキーをそのまま使用でき、URL構造について心配する必要はありません。

于 2013-03-12T08:51:19.580 に答える
1

mongodb ids は id (507f1f77bcf86cd799439011 など) よりも少し長くなりますが、コレクションごとに一意です。フォルダ名として問題なく使用できます

于 2013-03-12T08:42:23.273 に答える
1

フォルダー構造は本当に必要ありません。image.example.com で PHP ルーターを使用できます。たとえば、Code Ignitor を使用します。

関数インデックスを使用してコントローラーを作成し、75、62、34、product.jpg を $p1、$p2、$p3、$name として関数のパラメーターに入れます。

次のようにルートにファイルをアップロードします。

756234product.jpg

次のような画像 URL を生成します。

'http://image.example.com' . '/'. $p1 . $p2 . $p3 . $name;

次のようにアクセスします。

http://image.example.com/75/62/34/product.jpg
于 2013-03-12T08:40:36.627 に答える
0

Mongo には、独自の ID を割り当てることを妨げるものは何もありません。Mongo は、渡された一意の値を尊重します。もう 1 つの方法は、長い ID を折りたたむことです。たとえば、モジュロ 1000000 を取得すると、画像の 6 桁のキーが得られます。

MongoBD の ID が変わるのはなぜだと思いますか? 私の知る限りではありません。

于 2013-03-12T10:27:30.567 に答える