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

你真的不需要文件夹结构,你可以在 image.example.com 上使用 PHP 路由器。例如使用代码点火器。

制作一个带有函数索引的控制器,将 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 回答
1

mongodb ids 比您的 id 稍长(如 507f1f77bcf86cd799439011),但对于每个集合来说都是独一无二的。您可以将其用作文件夹名称而不会出现任何问题

于 2013-03-12T08:42:23.273 回答
1

您可以做的是维护另一个属性并使其成为唯一索引,并在另一个集合中维护 autoincement 值,以便可以使用它来插入新文档。这样,您仍将坚持使用旧的自动增量键,而无需担心您的 URL 结构。

于 2013-03-12T08:51:19.580 回答
0

Mongo 中没有任何东西可以阻止您分配自己的 id。Mongo 将尊重您传递给它的任何独特价值。另一种方法是折叠长id。例如,将它们取模 1000000,这将为您提供图像的六位数密钥。

为什么你认为 MongoBD 的 id 会发生变化?据我所知不是。

于 2013-03-12T10:27:30.567 回答