2017-02-05 3 views
0

Я следующая схема мангуста:Создать Embeded документов мангуста

'use strict'; 

const PostSchema = new Schema({ 
    description: require('../fields/description'), 
    image: require('../fields/image'), 
    createdAt: require('../fields/createdAt'), 
    location: Location, 
    owner: require('../fields/owner') }, { 
    toObject: { 
     virtuals: true, 
     getters: true, 
     setters: true 
    }, 
    toJSON: { 
     virtuals: true, 
     getters: true, 
     setters: true 
    } }); 

module.exports = mongoose.model('Post', PostSchema); 

LocationSchema.js

'use strict'; 

const mongoose = require('mongoose'); 
const Schema = mongoose.Schema; 

const LocationSchema = new Schema({ 
    description: { 
    type: String, 
    required: true 
}, 
    point:{ 
    type: [Number], 
    index: '2d', 
    required: true 
}, 
    createdAt:{ 
    type: Date, 
    required: true, 
    default: new Date() 
} 
}); 

module.exports = mongoose.model('Location', LocationSchema); 

и когда я перезагружусь мой сервер nodejs я имею следующее сообщение об ошибке:

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

Кто-то знает, как это решить?

+1

Не могли бы вы добавить до более подробную информацию здесь. О том, что такое «Местоположение». –

+0

Я добавляю LocationSchema – 1fabiopereira

+0

это ваш вопрос => у вашей почты есть ключ к месту, и эти местоположения сохраняются в другой коллекции, называемой местоположением? –

ответ

0

Ваша ошибка здесь означает, что вы не указали ссылку на ключ местоположения в своей почтовой коллекции, если хотите указать идентификатор местоположения в своей почтовой коллекции, которую вы должны предоставить ссылку на свою коллекцию.

пример:

var PostSchema = new mongoose.Schema({ 
    location: [{ type: mongoose.Schema.Types.ObjectId, ref: 'location' }] 
}); 
Смежные вопросы