mongodb - 存储与 id 的关系
mongodb - storing relation with id
我有一个非常基本(可能很愚蠢)的问题。
假设我有如下产品列表的产品集合。
db.products.findOne
{
"_id" : ObjectId("60db1b449f9a43695c4bb461"),
"name" : "product 1"
}
将类别存储为关系时,应该如何存储? (请勾选category_id)
方法 1
db.products.findOne
{
"_id" : ObjectId("60db1b449f9a43695c4bb461"),
"name" : "product 1",
"category_id" : ObjectId("608f981fcfeaa757ca69b4b5")
}
方法 2
db.products.findOne
{
"_id" : ObjectId("60db1b449f9a43695c4bb461"),
"name" : "product 1",
"category_id" : "608f981fcfeaa757ca69b4b5"
}
视情况而定。
嵌入为 ObjectId
类型如果:
你会根据这个key进行$lookUp
操作,那么最好把它嵌入成ObjectId
类型。
I highly recommend embedding it as ObjectId
嵌入为 string
类型如果:
您正在使用的驱动程序或应用程序不支持使用 ObjectId
类型。
在我工作的公司中,我们将嵌入式关系作为 ObjectId,即使很容易将数据传递给 REST API(因为不需要转换),但转换起来非常痛苦$lookUp
操作的 ObjectId 字符串。
请注意,在大多数语言中,您必须在将字符串转换为 ObjectId 时额外处理错误(因为 ObjectId
具有验证规则),而将 ObjectId
转换为 ObjectId 则不存在此问题string
我有一个非常基本(可能很愚蠢)的问题。
假设我有如下产品列表的产品集合。
db.products.findOne
{
"_id" : ObjectId("60db1b449f9a43695c4bb461"),
"name" : "product 1"
}
将类别存储为关系时,应该如何存储? (请勾选category_id)
方法 1
db.products.findOne
{
"_id" : ObjectId("60db1b449f9a43695c4bb461"),
"name" : "product 1",
"category_id" : ObjectId("608f981fcfeaa757ca69b4b5")
}
方法 2
db.products.findOne
{
"_id" : ObjectId("60db1b449f9a43695c4bb461"),
"name" : "product 1",
"category_id" : "608f981fcfeaa757ca69b4b5"
}
视情况而定。
嵌入为 ObjectId
类型如果:
你会根据这个key进行$lookUp
操作,那么最好把它嵌入成ObjectId
类型。
I highly recommend embedding it as
ObjectId
嵌入为 string
类型如果:
您正在使用的驱动程序或应用程序不支持使用 ObjectId
类型。
在我工作的公司中,我们将嵌入式关系作为 ObjectId,即使很容易将数据传递给 REST API(因为不需要转换),但转换起来非常痛苦$lookUp
操作的 ObjectId 字符串。
请注意,在大多数语言中,您必须在将字符串转换为 ObjectId 时额外处理错误(因为 ObjectId
具有验证规则),而将 ObjectId
转换为 ObjectId 则不存在此问题string