Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

subdocumentos no mongodb

Sou iniciante no mundo nosql, e queria uma ajuda:

tenho dois documentos: Prato e Restaurante.

Já tenho cadastrado alguns Restaurantes, e quero que, ao cadastrar um Prato, seja informado um restaurante, onde na tela de cadastro de Pratos estou usando um "combobox", que ao ser selecionado, mostra todos os restaurantes cadastrados no sistema! Quero recuperar o _id do restaurante selecionado no combo e assim cadastrar o prato referente ao um Restaurante.

Minha dúvida é: Como ficaria no meu documento Prato?? (sinalizei com uma "?") o campo de onde ficaria o _id do restaurante

agradeço desde já

segue os dois documentos

var mongoose = require('mongoose');

module.exports = function(){

    var restauranteSchema = mongoose.Schema({
        nome : {type: String, trim: true}
    });

    return mongoose.model('Restaurantes',restauranteSchema);
}
var mongoose = require('mongoose');

module.exports = function(){

    var pratoShema = mongoose.Schema({
        restaurante: {[?]},
        nome: {type: String, trim: true},
        valor: {type: Number, trim: true}
    });

    return mongoose.model('Pratos', pratoShema);
}
2 respostas
solução!

Oi Iran, não sou especialista, mas dei uma buscada aqui e achei esse gist => https://gist.github.com/robert52/1f82b5d201aa95e13cd1a3344f03eda5 Ele tem vários exemplos para você fazer composição.

Obrigado Alberto!

consegui implementar, na verdade era bem simples! :)

var mongoose = require('mongoose');

module.exports = function(){

    var Schema = mongoose.Schema,
    ObjectId = Schema.ObjectId;

    var pratoShema = mongoose.Schema({
        nome: {type: String, trim: true},
        valor: {type: Number, trim: true},
        data_cad: {type: Date, default: Date.now},
        restaurante: {
            type: mongoose.Schema.Types.ObjectId,
            ref: 'Restaurante'
    }});

    return mongoose.model('Pratos', pratoShema);
}