MongoDB将孩子与父母联系起来

时间:2018-10-27 11:24:08

标签: javascript mongodb meteor collections

我创建一个Meteor应用程序,其中有两个集合,ActivityCards和Users。我在ActivityCard集合中有对用户的引用,如下所示:

 {
    "_id" : "T9QwsHep3dMSRWNTK",
    "cardName" : "Guntnauna",
    "activitycardType" : 10,
    "startDate" : "1952-08-09",
    "remainingHours" : 0,
    "activities" : [ 
      {
        "activityName" : "Cfuw",
        "activityTotal" : "5",
        "activityEmployee" : "Smamnktl",
        "activityDate" : "1960-07-16"
      }, 

      ... 
    ],
    "customerID" : "z9hXczmWaf7wgdAtj",
    "isArchived" : 0
}

customerID包含以下用户集合的ID:

{
    "_id" : "9mXAZkmfpKMPvQY8Y",
    "createdAt" : ISODate(),
    "services" : {
      "password" : {
        "bcrypt" : ""
      }
    },
    "emails" : [ 
      {
        "address" : "topony@mailinator.com",
        "verified" : false
      }
    ],
    "profile" : {
      "relationNumber" : "962",
      "companyName" : "Snider Kinney Co",
      "locationStreet" : "Ullamco eaque consequatur aspernatur consectetur eiusmod eligendi enim rerum consectetur asperiores officia eius itaque expedita dolorum",
      "locationPostal" : "Sit inventore asperiores est anim commodo non fugiat consequat Voluptatem tempore sunt culpa magni",
      "locationCity" : "Ipsum et fugit pariatur Nobis eveniet neque veniam perferendis eius ut quo excepteur consequatur voluptatem architecto",
      "contactName" : "Julian Moran",
      "contactPhone" : "+388-14-8339022",
      "isArchived" : 0
    },
    "roles" : {
      "customers" : [ 
        "customer"
      ]
    }
} 

我是MongoDB的新手,不知道这是否是配置正确的关系。在文档中,我通常会发现父级与子级之间的关系,而不是相反。

我想知道你们对这种关系有何建议。 如何保存它们,从两个集合中获取数据等。

如果可以使用我的代码,我想知道如何将关系从子级转换为父级并显示它们。目前,我仅使用MongoDB中的find()方法并将数据映射到单独的值中。

1 个答案:

答案 0 :(得分:0)

您可以在mongodb集合中具有这种关系。如果您使用猫鼬,则可以在您的模式中定义它们,如下所示:

customerId:{{ type: mongoose.Schema.ObjectId, ref: 'user' }}

,您可以通过mongoose populate与孩子取得父母的联系。 有关更多信息,请参见

  

https://mongoosejs.com/docs/populate.html