MongoDB: aggiungere elementi agli array di un documento

MongoDB: aggiungere elementi agli array di un documento

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]
  }
]

Torna su