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.