MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

MongoDB - $addToSet in einer Liste eingebetteter Dokumente

$addToSet verwendet die üblichen Mongodb-Gleichheitsregeln :Es wird ein tiefer Wert-für-Wert-Vergleich durchgeführt, daher sind die folgenden beiden Dokumente identisch:

{ name: "John", hobbies: ["coding", "drinking", "chess"] }
{ hobbies: ["coding", "drinking", "chess"], name: "John" }

(Reihenfolge innerhalb von Dokumenten wird nicht garantiert , sie sind also identisch)

während diese nicht sind (paarweise):

// compare to:
{ name: "John", hobbies: ["chess", "coding", "drinking"] } 

// in arrays, the order matters:
{ name: "John", hobbies: ["coding", "drinking", "chess"] } 

// field names and values are case sensitive
{ Name: "John", hobbies: ["chess", "coding", "drinking"] } 
{ name: "john", hobbies: ["chess", "coding", "drinking"] } 

// additional field:
{ name: "John", lastName: "Doe", hobbies: ["chess", "coding", "drinking"] }

// missing field:
{ name: "John" }

Bitte beachten Sie, dass es hier kein spezielles Feld gibt. Sie können eine _id hinzufügen Feld, aber es hat keine spezielle Semantik und wird wie jedes andere Feld behandelt.