Mongodb 似乎无法导入子文档
我正在尝试将子文档导入Express/Mongoose API 我的结构如下:Mongodb 似乎无法导入子文档,mongodb,express,mongoose,Mongodb,Express,Mongoose,我正在尝试将子文档导入Express/Mongoose API 我的结构如下: models |-profile | |-phones.js | |-profile.js 以下是phones.js模式文件: var mongoose = require('mongoose'); var Schema = mongoose.Schema; var PhonesSchema = new mongoose.Schema({ p
models
|-profile
| |-phones.js
|
|-profile.js
以下是phones.js模式文件:
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var PhonesSchema = new mongoose.Schema({
phone_number:{ type: String },
phone_type:{ type: Number }
})
module.exports = mongoose.model('PhonesSchema', PhonesSchema);
下面是profile.js父文档,它位于models文件夹中:
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var PhonesSchema = require('./profile/phones');
var ProfileSchema = new Schema({
//PROFILE INFO
owner_id: {
type: String,
require: true,
unique: true
},
linkedIn:{
type: String
},
phones:[PhonesSchema],
});
module.exports = mongoose.model('Profile', ProfileSchema);
但它不起作用
有什么想法吗?问题似乎更多地在于您导出的是PhonesSchema的模型,而不是模式。而不是使用
model.exports = mongoose.model('PhonesSchema',PhonesSchema)
你应使用:
model.exports = PhonesSchema
ref:你能告诉我你的目录结构吗?你为什么要在一个模式中定义一个模式?只需将您的孩子定义为json对象…@LostJon,我的理解是这是一种最佳实践,因为它更像是一种OOP方法,允许我在其他场景中导入和重用模式块。我还认为它提供了一种更干净的方法,可以在这些代码段增长时更容易地管理代码。你的想法是什么?这种方法有缺点吗?嗨,拉维,我对这个例子做了进一步的清理。父架构位于models文件夹的根目录中。其他文件位于子文件夹profiles中。因此./profile/phones的路径应该适合require。@cnak2似乎问题更多的是您导出的是PhonesSchema的模型,而不是架构。不要使用model.exports=mongoose.model'PhonesSchema',PhonesSchema您可以只使用model.exports=PhonesSchema,您应该设置为ref: