Czy istnieje wbudowany sposób na uzupełnienie (wstawić, jeśli nie istnieje) w Mongoid? Czy powinienem sprawdzić, czy element istnieje najpierw, a dopiero potem wstawić/zaktualizować?Upsert in Mongoid
5
A
Odpowiedz
2
Tam jest wbudowany upsert metoda Mongoid już
Model # upsert Wykonuje upsert MongoDB w dokumencie. Jeśli w bazie danych istnieje dokument , zostanie on zastąpiony bieżącymi atrybutami dokumentu w pamięci . Jeśli dokument nie ma w bazie danych , zostanie wstawiony. Zwróć uwagę, że działa to wyłącznie pod warunkiem, że wywołań zwrotnych {before | after | around} _upsert.
Zrobione z http://mongoid.org/en/mongoid/docs/persistence.html
Jak to zrobić dla has_many. Załóżmy, że użytkownik ma wiele książek, chcę, aby książki użytkownika były aktualizowane, dodawane, modyfikowane? User.first.upsert (: books_attributes =>?) ??? – user1735921
@ user1735921it już od jakiegoś czasu, ponieważ użyłem MongoDB, ale szybko obejrzę bieżące pokazy dokumentów - https://docs.mongodb.com/ruby-driver/master/tutorials/ruby-driver-bulk-operations/# aktualizacja-wiele – gef