我有一个数据库,其中包含来自两个独立系统/服务器的数据。第一个是本地生成的[我开发并创建此数据](用户,活动日志,订单......)。第二个来自“产品提供商”[我只能从API获取READ访问权限]这些对象由MySQL创建并以JSON格式发送。他们已经拥有“id”属性。
使用NodeJS,我使用请求按“id”获取产品,然后将其存储为newProduct.save()
附加_id
。
在产品中,“id”必须与我的数据库中的其他集合(例如products_price)建立关系,并访问动态端点,例如“products /:id / promos”。
请注意,产品不断在外部更新,我需要能够通过“id”更新我的文档而不是“_id”,因为外部服务器不知道“_id”。 [id在集合级别是唯一的,因为每个集合都是一个新的迭代]
对于我的第一个问题:我应该将“product.id”视为“常规”MongoDB字段,并使用聚合/查找来合并我的集合中的文档吗?或者我应该用id覆盖ObjectID()? (在将“id”重命名为“_id”之前)
在某些时候,订单(本地)和产品(外部)需要形成一种关系,其中订单_id和产品ID(或_id)存储在一起以便于检索。
在这种情况下我使用哪个ID?
答案 0 :(得分:1)
如果你非常确定' id'来自您的产品提供商API的唯一您最好将其用作_id(覆盖_id),它会为您节省:
(*)即使您发现自己与许多不同的产品提供商打交道,假设它使用自己独特的产品ID,您可以使用组合_id使其独特:
或_id = provider_name + product_id 等等。
多个提供商格式的用例中的取决于您计划以后如何获取这些产品。