Запазване срещу вмъкване:
В дадените от вас примери поведението е по същество същото.
save
се държи различно, ако се предава с параметър "_id".
За запазване, ако документът съдържа _id
, ще наложи запитване на колекцията на _id
поле, ако не, то ще се вмъкне.
Ако документ не съществува с посочената стойност _id, методът save() извършва вмъкване с посочените полета в документа.
Ако съществува документ с посочената стойност _id, методът save() извършва актуализация, като заменя всички полета в съществуващия запис с полетата от документа.
Запазване срещу актуализиране :
update
променя съществуващ документ, съответстващ на вашите параметри на заявката. Ако няма такъв съответстващ документ, тогава upsert
идва на снимката.
upsert : false
:Нищо не се случва, когато такъв документ не съществуваupsert : true
:Създава се нов документ със съдържание, равно на параметрите на заявката и параметрите за актуализиране
save
:Не позволява никакви параметри на заявка. if _id
съществува и има съвпадащ документ със същия _id
, то го замества. Когато не е посочен _id/няма съответстващ документ, той вмъква документа като нов.