MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

MongoDB - $addToSet em uma lista de documentos incorporados


$addToSet usa as habituais regras de igualdade do mongodb :ele fará uma comparação profunda de valor por valor, portanto, os dois documentos a seguir são idênticos:
{ name: "John", hobbies: ["coding", "drinking", "chess"] }
{ hobbies: ["coding", "drinking", "chess"], name: "John" }

(pedir nos documentos não é garantido , então eles são idênticos)

enquanto aqueles não são (em 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" }

Observe que não há nenhum campo especial aqui. Você pode adicionar um _id campo, mas não tem semântica especial e será tratado como qualquer outro campo.