首页 > 解决方案 > 如何为子文档创建 mongoDb 架构

问题描述

我有如下文件。这里peoples包含指向用户集合的 ObjectId 数组。并且contribution字段包含与字段一样多的子文档peoples。长度是可变的,例如如果某个组中有 2 个 ObjectId,people那么contribution将有 2 个子文档。我需要为此创建 mongoDb 架构,请告诉我架构。

{
   name: "person name",
   _id: ObjectId(""),
   creater: ObjectId("1"), //referencing to user collection
   peoples: [ObjectId("1"), ObjectId("2"),...upto n], //all referencing to user table
   contribution: {
                  ObjectId("1"):{
                                paid: 1200,
                                due: 1000,
                                prevDue: 200,
                                Advance: 0
                               },
                  ObjectId("2"):{
                                paid: 1200,
                                due: 1000,
                                prevDue: 200,
                                Advance: 0
                               },
                  //upto end of lists in peoples array
                 },
  estimated: 30000,
  collected: 15379,
  left: 14721
}

标签: node.jsmongodbmongoose-schema

解决方案


您只需要在 main 中引用嵌套模式schema。例如:

let user = new Schema({
  name: String
})

let schema = new Schema({
  followers: [user]
})

在 的followers字段中schema,您刚刚引用了user架构。每当完成这种引用时,nested schema就会将类型注入到引用点中。


推荐阅读