MongoDB
Uppdatera operatörer
Sök…
Syntax
- {$ set: {<field1>: <val11, <field2>: <val22, ...}}
parametrar
parametrar | Menande |
---|---|
fält namn | Fältet kommer att uppdateras: { name : 'Tom'} |
targetVaule | Värdet tilldelas fältet: {name: 'Tom' } |
Anmärkningar
Referens för $ set operator: $ set på officiell webbplats
$ ställ in operatören att uppdatera angivna fält i dokument (er)
I.Overview
En betydande skillnad mellan MongoDB och RDBMS är att MongoDB har många typer av operatörer. En av dem är uppdateringsoperatören, som används i uppdateringsförklaringar.
II. Vad händer om vi inte använder uppdateringsoperatörer?
Anta att vi har en studentsamling för att lagra studentinformation (tabellvy):
En dag får du ett jobb som behöver ändra Toms kön från "M" till "F". Det är lätt, eller hur? Så du skriver nedanstående uttalande mycket snabbt baserat på din RDBMS-upplevelse:
db.student.update(
{name: 'Tom'}, // query criteria
{sex: 'F'} // update action
);
Låt oss se vad som är resultatet:
Vi tappade Toms ålder & namn! Från det här exemplet kan vi veta att hela dokumentet kommer att åsidosättas om det inte finns någon uppdateringsoperatör i uppdateringsförklaringen. Detta är standardbeteendet för MongoDB.
III. Inställd operatör
Om vi bara vill ändra fältet 'sex' i Toms dokument kan vi använda $set
att ange vilka fält vi vill uppdatera:
db.student.update(
{name: 'Tom'}, // query criteria
{$set: {sex: 'F'}} // update action
);
Värdet på $set
är ett objekt, dess fält står för de fält du vill uppdatera i dokumenten, och värdena för dessa fält är målvärdena.
Om du vill ändra både 'kön' och 'ålder' samtidigt kan du lägga till dem till $set
:
db.student.update(
{name: 'Tom'}, // query criteria
{$set: {sex: 'F', age: 40}} // update action
);