MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

MongoDB - $addToSet sur une liste de documents intégrés

$addToSet utilise les règles d'égalité mongodb habituelles  :il fera une comparaison approfondie valeur par valeur, donc les deux documents suivants sont identiques :

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

(ordre dans les documents n'est pas garanti , ils sont donc identiques)

alors que ceux-ci ne le sont pas (par paire) :

// 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" }

Veuillez noter qu'il n'y a pas de champ spécial ici. Vous pouvez ajouter un _id champ, mais il n'a pas de sémantique spéciale et sera traité comme n'importe quel autre champ.