Operator MongoDB $ MUL

Operator MongoDB $ MUL
Podczas pracy z bazami danych często natkniesz się na przypadki, w których musisz wykonywać operacje arytmetyczne na danym zestawie rekordów. MongoDB zapewnia nam zestaw operatorów arytmetycznych do wykonywania takich operacji.

W tym poście omówimy, jak pomnożyć wartości danego pola z określoną liczbą za pomocą operatora $ MUL.

Operator MongoDB $ MUL

$ MU lub operator mnożenia pozwala nam pomnożyć wartość danego pola o określonej wartości numerycznej.

Składnia operatora jest jak pokazana:

$ mul: : ,…

Dobrze jest upewnić się, że pole docelowe utrzymuje wartość liczbową. W przeciwnym razie operator kończy się niepowodzeniem, jeśli napotyka wartość nie-numeryczną.

Możesz także użyć notacji kropkowej, aby uzyskać dostęp do pola znajdującego się w wbudowanym dokumencie lub tablicy.

Jeśli określone pole nie istnieje w dokumencie docelowym, operator tworzy zdefiniowany złożony i ustawia wartość na zero z podobnym typem jak numer mnożnika.

Dobrze jest również zapamiętać reguły konwersji, które mogą mieć zastosowanie podczas wykonywania mnożenia w różnych typach. Poniższa tabela pokazuje obsługiwane konwersje typu:

Spójrzmy na rzeczywisty przykład, jak korzystać z operatora $ MUL.

Przykładowy zbiór i dokumenty

Załóżmy, że mamy kolekcję zawierającą informacje o produkcie, jak pokazano:

Test> db.CreateCollection („Produkty”)
OK: 1
Test> db.produkty.wstrząs
… _Id: 1, nazwa_produktu: „produkt_1”, cena: 100, Qty: 78,
… _Id: 2, nazwa_produktu: „produkt_2”, cena: 4500, Qty: 344,
… _Id: 3, nazwa_produktu: „produkt_3”, cena: 45, Ilość: 200
…]);
potwierdzony: true, InsertedIds: '0': 1, '1': 2, '2': 3

Przykład:

Poniższy przykład pokazuje prostą operację korzystania z operatora $ MUL:

Test> db.produkty.updateOne (_id: 1, $ mul: cena: 2);

Poprzednie zapytanie powinno pomnożyć cenę przez 2 i na dokumencie z identyfikatorem 1.

Wyjście:

Uznany: prawda,
Wstawka: NULL,
MatchedCount: 1,
ModifiedCount: 1,
upsertedCount: 0

Możemy znaleźć pasujące dokumenty w następujący sposób:

Test> db.produkty.znajdować();

Powstałe dokumenty:

[[[
_id: 1, nazwa_produktu: „produkt_1”, cena: 200, Ilość: 78,
_id: 2, nazwa_produktu: „produkt_2”, cena: 4500, Qty: 344,
_id: 3, nazwa_produktu: „produkt_3”, cena: 45, Ilość: 200
]

Widzimy, że dokument aktualizuje pierwszy dokument, który ma cenę 200.

Jeśli chcesz zaktualizować więcej niż jedno pole, możesz użyć żądania, jak pokazano następująco:

Test> db.produkty.aktualizacja (_id: 1, $ mul: cena: 2, Qty: 100);

W takim przypadku zapytanie aktualizuje cenę i ilość pierwszego dokumentu, jak pokazano w następującym wyniku:

Test> db.produkty.znaleźć (_ id: 1);

Wynik:

[_id: 1, nazwa_produktu: „produkt_1”, cena: 400, Qty: 7800]

Wniosek

W tym przewodniku nauczyłeś się korzystać z operatora mnożenia w MongoDB Shell. Sprawdź dokumenty, aby uzyskać więcej informacji.