嵌入式文档没有数组,没有参考

时间:2015-01-18 10:26:48

标签: node.js mongodb mongoose

我有以下数据模型:

用户 - 地址 (一个用户有一个地址)。

出于可重用性的原因,我想在两个单独的文件中定义Address和User的模式。这两个“实体”的关系应该实现为嵌入式文档(没有数组,因为用户只有一个地址)。

使用Mongoose阅读Embedded document without Array?https://github.com/LearnBoost/mongoose/pull/585这并不容易。根据Stackoverflow线程,它可以完成,如:

addressPersistenceModel.js:

var address = {
    street: String,
    zipCode: String,
    ...
};

module.exports = address;

userPersistenceModel.js:

var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var addressDefinition = require('./addressPersistenceModel');

var Address = new Schema(addressDefinition);

var UserEntityModel = new Schema({
    firstname: String,
    lastname: String,
    ...
    address: Address
});
mongoose.model('User', UserEntityModel);

但是我仍然收到错误

TypeError: Undefined type at `address`
Did you try nesting Schemas? You can only nest using refs or arrays.

1 个答案:

答案 0 :(得分:0)

定义你那样的实体

var UserEntityModel = new Schema({
    firstname: String,
    lastname: String,
    address: addressDefinition
});

您可以嵌入“定义”,但不能嵌入已创建的架构。