我有一个产品页面,其格式为http://host/products/{id}/{seo-friendly-url}
,其中“seo-friendly-url”部分可能类似于category/subcategory/product
。从RDBMS角度看mongoDB中的产品目录存储
产品控制器获取具有指定ID的产品,然后确保随后的URL对于产品是正确的 - 如果不是该用户被重定向到适当的URL(店铺中的所有URL均正确生成不过,重定向只是为了保持一个规范的URL,以防用户迷惑或者因为Google抓取它而导致URL发生变化等)。该ID可确保快速查找产品,并且末尾的部分可确保关键字进入URL。
为了检查URL,我有一个SQL视图,它利用递归公用表表达式将整个产品URL块与其父类别URL的URL连接起来(通常只有3深)。
我最近遇到了面向文档的存储,我可以看到它在各种情况下非常有用(例如,我的产品实体具有标签和multibuy价格和属性等全部在不同的表中)。
因此,对于我的问题 - 我如何在mongoDB中实现上述功能,还是有更好的方法来思考它?天真的方法是单独检索层次结构中的每个类别,但我认为这会很慢。
相关:我已经在文档中看到skip/limit for对于大型结果集来说很慢 - 这对于每个可能出现在零售网站类别中的25个产品的10个页面的最大值是否会引起注意?
谢谢。我曾经想过批量重命名是一个缺点,但你是对的 - 它会比较少见,所以不那么重要。跳过/限制与模糊相关,因为它涉及产品和从SQL到面向文档的翻译,但下次我会单独发布问题,对不起! :) – stewartml