Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongodb 似乎无法导入子文档_Mongodb_Express_Mongoose - Fatal编程技术网

Mongodb 似乎无法导入子文档

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

我正在尝试将子文档导入Express/Mongoose API

我的结构如下:

   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: