Considerate questi datiCome alternare un campo booleano in un elemento Array in MongoDB?
{
"_id" : ...,
"array" : [
{ "name" : "value1","flag" : true } ,
{ "name" : "value2","flag" : false }
]
}
vorrei alternare l'elemento secondo array (da false a true)
so di poter aggiornare un elemento specifico utilizzando il molto utile $ operatore posizionale in questo modo:
db.myCollection.update(
{'array.name':'value2'},
{
$set: {
'array.$.flag':true
}
},false,true);
Ma c'è un modo per utilizzare l'operatore di posizione $ anche per l'impostazione del valore?
ad es. come questo?
db.myCollection.update(
{'array.name':'value2'},
{
$set: {
'array.$.flag':'!array.$.flag' //<--
}
},false,true);
Grazie, temevo che fosse così, quindi significa, non sarà transazionale, giusto? –
@EranMedan: sì, ma c'è una soluzione alternativa. Vedi risposta aggiornata. –