sql >> Base de Datos >  >> NoSQL >> MongoDB

MongoDB - $addToSet en una lista de documentos incrustados

$addToSet utiliza las habituales reglas de igualdad de mongodb :realizará una comparación profunda valor por valor, por lo que los siguientes dos documentos son idénticos:

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

(ordenar dentro de los documentos no está garantizado , por lo que son idénticos)

mientras que esos no lo son (por pares):

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

Tenga en cuenta que no hay ningún campo especial aquí. Puede agregar un _id campo, pero no tiene una semántica especial y será tratado como cualquier otro campo.