MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

MongoDB - $ addToSet in un elenco di documenti incorporati

$addToSet utilizza le consuete regole di uguaglianza mongodb :eseguirà un profondo confronto valore per valore, quindi i due documenti seguenti sono identici:

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

(ordina all'interno dei documenti non è garantito , quindi sono identici)

mentre quelli non lo sono (a coppie):

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

Si prega di notare che non ci sono campi speciali qui. Puoi aggiungere un _id campo, ma non ha una semantica speciale e verrà trattato come qualsiasi altro campo.