javascript - Mongoose 模型架构引用不起作用 - 电子商务模型
问题描述
我正在使用以下架构创建多供应商电子商务平台。
var user = new Schema(
{
uid: { type: String, index: true, unique: true },
firstName: { type: String, required: true, default: null },
lastName: { type: String, default: null, default: null },
userEmail: { type: String, unique: true, required: true, lowercase: true, },
userProfileImg: { type: String, required: true, default: null },
userDesignation: { type: String, default: null },
userMobile: { type: Number, required: true, default: null },
products: { type: Schema.Types.ObjectId, ref: 'Product' },
}
);
var product = new Schema(
{
sku: { type: String, required: true, unique: true },
title: { type: String, required: true },
category: { type: Array, default: [] },
images: { type: Array, default: [], },
groups: { type: Array, default: [], },
price: { type: Number, default: null, },
unit: { type: String, default: null, },
quantity: { type: Number, default: null, },
description: { type: String, default: null, },
},
);
var AllUser = mongoose.model('User', user, 'AllUsers');
var Allproducts = mongoose.model('Product', product, 'AllProducts');
如何在引用多个用户的同时保存多个产品?稍后我想根据用户填充产品。
解决方案
您的问题在于引用该集合。在这里编译模型时
var AllUser = mongoose.model('User', user, 'AllUsers');
var Allproducts = mongoose.model('Product', product, 'AllProducts');
您使用 Product,对于数据库收集,您使用 AllProducts。这就是问题所以......尝试这样做
var Users = mongoose.model('Users', user, 'Users');
var Products = mongoose.model('Products', product, 'Products');
给它一个适当的命名约定。
这段代码中也有错别字..这里我已经修复了
var product = new Schema(
{
sku: { type: String, required: true, unique: true },
title: { type: String, required: true },
category: { type: Array, default: [] },
images: { type: Array, default: [] },
groups: { type: Array, default: [] },
price: { type: Number, default: null },
unit: { type: String, default: null },
quantity: { type: Number, default: null },
description: { type: String, default: null}
}
);
也在您的用户架构中
var user = new Schema(
{
uid: { type: String, index: true, unique: true },
firstName: { type: String, required: true, default: null },
lastName: { type: String, default: null, default: null },
userEmail: { type: String, unique: true, required: true, lowercase: true,
},
userProfileImg: { type: String, required: true, default: null },
userDesignation: { type: String, default: null },
userMobile: { type: Number, required: true, default: null },
products: [{ type: Schema.Types.ObjectId, ref: 'Product' }]
}
);
将产品设为数组类型,以便您可以存储多个产品 ID
推荐阅读
- python - 自定义 bash 函数不提供 python 多个参数
- java - 在 MariaDB 上使用 Hibernate 的 JPQL 更新查询出错
- python - 在列表中搜索终端输入并将匹配项存储到新列表中
- cuda - 使用 CUDA C/C++ 进行高斯图像模糊
- flutter - Flutter:如何在 Text 小部件中设置 maxLine
- django - Django ListView 分页设置
- bash - Maven 属性 - Windows 提示上的 Git Bash Shell 不是 UTF-8
- macos - 如果删除了如何重新安装apache服务器?
- python - Keras - 嵌入到 LSTM:预期 ndim=3,发现 ndim=4
- spring-security - 使用带有 Spring Security 的自定义登录页面时出现 403 Forbidden 错误