MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

MongoDB $mul

MongoDB ha un $mul operatore di aggiornamento del campo che consente di moltiplicare un valore per un importo specifico.

Se il campo non esiste già, viene creato e il suo valore viene impostato su zero (0 ) utilizzando lo stesso tipo numerico del moltiplicatore.

Esempio

Supponiamo di avere una collezione con il seguente documento:

{ "_id" : 1, "bar" : 10 } 

Possiamo usare il $mul operatore insieme a update() metodo per incrementare la bar campo.

In questo modo:

db.foo.update(
  { _id: 1 },
  { $mul: { bar: 2 } }
)

Uscita:

WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

Questo ci dice che un documento è stato abbinato e modificato.

Controlliamo di nuovo la collezione:

db.foo.find()

Risultato:

{ "_id" : 1, "bar" : 20 } 

Possiamo vedere che l'importo è raddoppiato a 20.

Moltiplica un campo che non esiste

Quando usi $mul su un campo che non esiste nel documento, il campo viene aggiunto e impostato a zero (0 ) utilizzando lo stesso tipo numerico del moltiplicatore.

Esempio:

db.foo.update(
  { _id: 1 },
  { $mul: { bar: 3, extra: 2 } }
)

Uscita:

WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

Si noti che abbiamo aggiornato due campi; la bar campo e il extra campo (che originariamente non esisteva).

Controlliamo di nuovo il documento:

db.foo.find()

Risultato:

{ "_id" : 1, "bar" : 60, "extra" : 0 } 

Possiamo vedere che la bar il campo è stato moltiplicato per 3 e un nuovo extra il campo è stato aggiunto e impostato su 0 .

Tipi misti

La moltiplicazione con valori di tipi numerici misti (intero a 32 bit, intero a 64 bit, float) può comportare la conversione del tipo numerico.

Consulta la documentazione di MongoDB per una spiegazione.