sto cercando di fare qualcosa di piuttosto semplice credo:Mongoide - Gestione array? inserire un valore univoco, rimuovere il valore se esiste?
1) Inserire un valore in un campo di matrice solo se tale valore non è già presente
2) rimuovere un valore se esiste nella matrice
ho appena idea di come fare nessuna di queste cose ... per il momento io sono solo inserire la mia valore senza controllare se esiste già: myArray < < obj.id
Grazie,
Alex
ps: usando Rails 3.0.3, 1.1.5 e mongo mongoid 2.0.0.rc5
ps2: questa è la sintassi MongoDB per ottenere ciò che voglio, ma non ho idea di come farlo in mongoid
{ $addToSet : { field : value } }
valore aggiunge alla matrice solo se non nella matrice già, se il campo è un array esistente, altrimenti imposta campo per il valore della matrice se il campo non è presente. Se il campo è presente ma non è una matrice, viene generata una condizione di errore.
di aggiungere molte valuest.update
{ $addToSet : { a : { $each : [ 3 , 5 , 6 ] } } }
$pop
{ $pop : { field : 1 } }
rimuove l'ultimo elemento di un array (aggiunta nel 1,1)
{ $pop : { field : -1 } }
rimuove il primo elemento di un array (aggiunta nel 1.1) |
I don' so la sintassi con il driver mongo rotaie, nut $ addToSet è quello che vuoi. –
sì, lo so .. :(ma non ho idea di come implementarlo – Alex