In MongoDB è semplice aggiungere elementi agli array contenuti nei documenti.
Abbiamo una collezione di clienti ciascuno con un array di ID di ordini effettuati nei rispettivi documenti:
[
{
orders: [1024, 2360, 3490]
},
{
orders: [2030, 1267, 3945]
}
]
Aggiungiamo un ordine utilizzando gli operatori $in e $push
:
db.customers.update(
{ orders: { $in: [2030] } },
{ $push: { orders: 2031 } }
);
Ovviamente se conoscete il valore di _id
del documento potete scrivere una query molto più veloce:
db.customers.update(
{ _id: '59bd48b75e6bc31a1dc9576a' },
{ $push: { orders: 2031 } }
);
Il significato della query è: se nell'array orders
è presente 2030
, aggiungi il valore 2031
all'array.
Ora la collezione si presenterà così:
[
{
orders: [1024, 2360, 3490]
},
{
orders: [2030, 1267, 3945, 2031]
}
]