Mongoose保存嵌入式子进程并更新到其他表

时间:2016-01-20 07:36:26

标签: mongodb mongoose

我有一个如下的架构,业务逻辑是这样的: 用户添加新的产品类别和多个产品(将与他们添加到嵌入式子级中的新类别相关联),并将保存在下面的架构中。同时,已添加的产品类别参考将更新为用户

var mongoose = require('mongoose'),
    Schema = mongoose.Schema;

var ProductSchema = new Schema({
    productname: {
        type: String,
        default: '',
        trim: true
    },
    productprice: {
        type: Number,
        default: 0.00
    }
});

var ProductCategorySchema = new Schema({
    categoryname: {
        type: String,
        default: '',
        trim: true
    },
    categorytype: {
        type: String,
        default: '',
        trim: true
    },
    product: [ProductSchema],
    user: {
        type: Schema.ObjectId,
        ref: 'User'
    }
});

var UserSchema = new Schema({
    name: {
        type: String,
        default: '',
        trim: true
    },
    productCategory: [{
        type: Schema.ObjectID,
        ref: 'ProductCategory'
    }]
});

mongoose.model('ProductCategory', ProductCategorySchema);
mongoose.model('User', UserSchema);

1 个答案:

答案 0 :(得分:0)

首先,按user找到name信息,然后将此_id的{​​{1}}分配给user,并保存此product.user }}。成功保存此product后,将product推送到product._id。然后最终保存这个user.productCategory。示例代码如下。

user