_id数组中引用另一个集合的其他字段

时间:2019-03-01 06:25:57

标签: mongodb

这就是我所拥有的,它的工作原理:

var comboSchema = new Schema({
    components: [{
        type: Schema.Types.ObjectId,
        ref: "Component"
    }]  
})  

这是我想要实现的:

var comboSchema = new Schema({
    components: [{
        type: Schema.Types.ObjectId,
        ref: "Component",
        amount: {type: Integer}
    }]  
})  

如果没有,最好的解决方法是在MongoDB中吗?

谢谢:-)

1 个答案:

答案 0 :(得分:1)

由于提供了元素或文件名,所以此架构有效

var comboSchema = new Schema({
    components: [{
        type: Schema.Types.ObjectId,
        ref: "Component"
    }]  
})  

现在您做了一个单独的操作,想要在具有两个不同字段的对象中创建不带名称的模式名称

创建这样的架构的正确方法是在数组内部创建包含字段类型的其他变量

var comboSchema = new Schema({
    components: [{
        id: {
             type: Schema.Types.ObjectId,
             ref: "Component"
            },
        amount: { //If you want to make every component amount
             type: Number
        }
    }]  
})

var comboSchema = new Schema({
    amount: { type: Number }, 
   //If you want to make only single amount on multiple components
    components: [{
        componentId: {
             type: Schema.Types.ObjectId,
             ref: "Component"
            }
    }]  
})

但是在两种情况下都不能直接填充。您需要为此使用聚合来获取嵌入式文档的数据。