MongoDB
Operators bijwerken
Zoeken…
Syntaxis
- {$ set: {<field1>: <waarde1>, <veld2>: <waarde2>, ...}}
parameters
parameters | Betekenis |
---|---|
veldnaam | Veld wordt bijgewerkt: { name : 'Tom'} |
targetVaule | Waarde wordt toegewezen aan het veld: {name: 'Tom' } |
Opmerkingen
Referentie voor $ set-operator: $ set op officiële website
$ set-operator om opgegeven veld (en) in document (en) bij te werken
I.Overview
Een belangrijk verschil tussen MongoDB en RDBMS is dat MongoDB vele soorten operators heeft. Een van hen is de update-operator, die wordt gebruikt in update-instructies.
II.Wat gebeurt er als we geen update-operators gebruiken?
Stel dat we een studentencollectie hebben om studentinformatie op te slaan (tabelweergave):
Op een dag krijg je een baan die het geslacht van Tom moet veranderen van "M" naar "F". Dat is gemakkelijk, toch? Dus schrijf je onderstaande verklaring heel snel op basis van je RDBMS-ervaring:
db.student.update(
{name: 'Tom'}, // query criteria
{sex: 'F'} // update action
);
Laten we eens kijken wat het resultaat is:
We hebben Tom's leeftijd en naam verloren! Uit dit voorbeeld kunnen we weten dat het hele document wordt genegeerd als er geen update-operator in de update-instructie is. Dit is het standaardgedrag van MongoDB.
III. $ Set-operator
Als we alleen het veld 'geslacht' in het document van Tom willen wijzigen, kunnen we $set
om op te geven welk veld of velden we willen bijwerken:
db.student.update(
{name: 'Tom'}, // query criteria
{$set: {sex: 'F'}} // update action
);
De waarde van $set
is een object, de velden staan voor de velden die u in de documenten wilt bijwerken en de waarden van deze velden zijn de doelwaarden.
Dus het resultaat is nu correct:
Als u zowel 'geslacht' als 'leeftijd' tegelijkertijd wilt wijzigen, kunt u ze toevoegen aan $set
:
db.student.update(
{name: 'Tom'}, // query criteria
{$set: {sex: 'F', age: 40}} // update action
);