【问题标题】:Embedded document without array and without reference没有数组且没有引用的嵌入文档
【发布时间】:2015-03-16 12:23:50
【问题描述】:

我有以下数据模型:

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

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

阅读 Embedded document without Array?https://github.com/LearnBoost/mongoose/pull/585 使用 Mongoose 并不容易。根据 Stackoverflow-thread,无论如何都可以这样做:

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.

【问题讨论】:

    标签: node.js mongodb mongoose


    【解决方案1】:

    这样定义你的实体

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

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

    【讨论】:

      猜你喜欢
      • 2013-11-07
      • 1970-01-01
      • 2019-02-20
      • 1970-01-01
      • 2022-10-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多