-1

我是 MongoDB 的新手,我找到了 eshop 的解决方案。如何最好地构建:

收藏:

  • 需要许多项目类型,如 cd、dvd、书籍.. 与作者
  • 需要促销包 = 项目有很多项目(cd、dvd、书籍..)

询问:

  • 需要这些物品的目录
  • 需要过滤 - 作者、项目类型

我不确定它是否可能以及何时使用嵌入以及何时引用.. 我也在考虑教义2 odm 鉴别器

谢谢 !

4

1 回答 1

1

收藏:

  • products:它包含以下字段:类型、作者(这是另一个具有名称的对象等)
  • 促销包:它包含名称、折扣等字段。

此外,产品集合包含一个名为“promotional_package”的字段,该字段包含一个promotionalPackages对象的_id

查询:

  • 按作者过滤 →db.products({ 'author.name': 'authorName' })
  • 按类型过滤 →db.products({ type:'DVD' })
  • 要获取促销商品,您需要进行 2 个查询:一个获取促销包的 _id,db.promotionalPackages.find({name:'my_promotional_package'})另一个获取属于它的所有产品db.products.find({ promotional_package: promotional_package._id })

注意:避免 dbref 在 products 和 PromotionPackages 之间进行引用你不需要它。

通常:将您访问的所有对象/文档(产品和作者)放在一起,并将可以单独访问的对象分开。研究您的用例,然后是您的查询,并为您的模式建模,以便在单个查询中获取 http 响应中所需的所有对象。

任何疑问?

于 2013-02-18T02:23:41.660 回答