Multi Relaciones с Mongoose

это первый раз, который я пишу, всегда решил проблемы с вопросами других, но этот раз я не нашел решение для этого:

У меня есть Schema, где у меня есть несколько ссылок на другие Schemas:

var mongoose = require('mongoose');
require('mongoose-double')(mongoose);
var Schema   = mongoose.Schema;
var User     = mongoose.model('User');
var Persona  = mongoose.model('Persona');
var PtoVenta = mongoose.model('PuntoVenta');
var FrmaPago = mongoose.model('FormaPago');
var Item     = mongoose.model('Item');

var SchemaTypes = mongoose.Schema.Types;

// Factura Schema
var FacturaSchema   = new Schema({
    tipo_doc: {type: String, enum: ['Factura', 'Recibo'], required: true},
    pto_venta: { type: mongoose.Schema.Types.ObjectId, ref: 'PtoVenta'},
    nro_factura: Number,
    fecha: { type: Date, default: Date.now },
    user: { type: mongoose.Schema.Types.ObjectId, ref: 'User'},
    cabecera: {
        persona: { type: mongoose.Schema.Types.ObjectId, ref: 'Persona'},
        apellido: String,
        nombre: String,
        empresa: String,
        CUIT: String,
        direccion: {
            calle: String,
            localidad: String,
            provincia: String,
            pais: String,
            cod_postal: String
        },
    },
    total: SchemaTypes.Double,
    subtotal: SchemaTypes.Double,
    impuesto: SchemaTypes.Double,
    observaciones: String,
    transaccion: {
        forma_pago: { type: mongoose.Schema.Types.ObjectId, ref: 'FormaPago'},
        detalle: String
    },
    items: [
        {
            item: { type: Schema.ObjectId, ref: "FacturaDetalle" }
        }
    ]
    status: String
});

Я нуждаюсь в том, чтобы реализовать populate каждой ссылки, но мне не удается открыть, как делание этого.

Factura.find(query, function(err, result) {
    if (err) res.send(err);
    res.json(result);
});

Я им благодарен смогите помогать мне реализовывать все populates или ориентировать меня, как это делаться!!

0
задан 23.01.2017, 19:21
0 ответов

В зависимости от версии mongoose, которую ты используешь, смоги быть:

Factura.find(query)
.populate('PtoVenta User Persona FormaPago FacturaDetalle')
.exec(function(err, result) {
    if (err) res.send(err);
    res.json(result); 
});

Или:

Factura.find(query)
.populate('PtoVenta').populate('User')
.populate('Persona').populate('FormaPago').populate('FacturaDetalle')
.exec(function(err, result) {
    if (err) res.send(err);
    res.json(result); 
});
1
ответ дан 03.12.2019, 17:32

Теги

Похожие вопросы