我说这个名为users
的集合:
"_id" : ObjectId("5371251fdd16203032846873"),
"address" : [
{
"_id" : ObjectId("537505bb6c12480d0b2038c6")
"type" : "Main",
"street" : "Bla bla street",
"number" : "132",
"complement" : "",
"district" : "Bla bla district",
"zipcode" : "somezipcode",
"state" : "BLA",
"city" : "Bla bla city"
}
]
然后我有一个名为orders
的地方,我想拥有address
字段,我希望在其中存储ID,以便我可以使用Mongoose的{{1} } {方法}集合populate
彼此的集合,如下所示:
join
这可能吗?
答案 0 :(得分:0)
您不会将ref
存储到该地址,而是将参考号存储到“用户”中。
user: {type: Schema.Types.ObjectId, ref: 'User'}
因为地址在用户密钥下。然后,您可以通过order.user.address
检索地址,该地址仍然只有一个填充,因为地址已嵌入用户文档中。
我也不会养成这些联接的习惯,因为他们并非如此。他们只是数据库的第二次往返,所以你应尽可能避免这些瘟疫。
替代解决方案可能只是将userAddress
作为嵌入式文档存储在order
模型上,如果您需要经常访问