2013-07-18 12 views
9

Il problema che ho è una mappatura da uno a molti con mangusta (Mongodb). Quello è l'ordine (dati dell'acquirente) e molti sono gli articoli (prezzo, quantità, ecc.).Mappatura da uno a molti in mangusta, come ricevere ed elaborare?

1) Come dovrei creare lo schema per l'ordine e gli articoli, come devo mettere gli articoli in un array nell'ordine?

2) Tutti i dati sarebbero in una funzione di post?

I herd è possibile utilizzare ObjectId per collegare molti a uno ma non so come.

risposta

14

Da un Ordine suona come esso avrà un numero piccolo rispetto di elementi, la cosa più semplice sarebbe probabilmente solo un elenco di voce di Ids:

var OrderSchema = new mongoose.Schema({ 
    items: [{type: mongoose.Schema.Types.ObjectId, ref: 'Item'}] 
}); 

var ItemSchema = new mongoose.Schema({ 
    price: Number, 
    quantity: Number 
}); 

La maggior parte interfacce utente non sarebbe costruire un intero ordine in un unico Funzione POST, quindi è probabilmente meglio consentire la creazione di un ordine e quindi aggiungere separatamente gli articoli ad esso tramite order.items.push(itemId).

+0

Quindi vorrei fare qualcosa come "app.post ('/ uri', api.function)" sia per l'ordine che per l'articolo, quindi nell'api (controller) è presente una funzione di callback nella funzione che crea elementi da premere articoli da ordinare? – Mike

+0

Beh, sì, anche se la creazione di un elemento sembra appartenere a un'app di gestione delle scorte separata rispetto alla creazione di un ordine che è un'attività di e-commerce. Spiacente, non posso guidarti in generale attraverso la progettazione dell'applicazione. Questo sito è per domande di programmazione specifiche. –

+0

Ciò richiede che ItemSchema si trovi nello stesso file di OrderSchema? Mi chiedo se il campo ref sarà risolto anche se ItemSchema è definito in un altro file. –

Problemi correlati