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): voer hier de afbeeldingsbeschrijving in

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: voer hier de afbeeldingsbeschrijving in

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: voer hier de afbeeldingsbeschrijving in

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
);


Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow