xem xét dữ liệu nàyLàm thế nào để chuyển đổi một trường Boolean trong một phần tử mảng trong MongoDB?
{
"_id" : ...,
"array" : [
{ "name" : "value1","flag" : true } ,
{ "name" : "value2","flag" : false }
]
}
Tôi muốn chuyển đổi các yếu tố thứ 2 mảng (từ false thành true)
Tôi biết tôi có thể cập nhật một yếu tố cụ thể bằng cách sử dụng $ hành vị trí rất hữu ích như thế này:
db.myCollection.update(
{'array.name':'value2'},
{
$set: {
'array.$.flag':true
}
},false,true);
Nhưng có cách nào để sử dụng toán tử vị trí $ cũng cho cài đặt giá trị không?
ví dụ: như thế này?
db.myCollection.update(
{'array.name':'value2'},
{
$set: {
'array.$.flag':'!array.$.flag' //<--
}
},false,true);
Xin cảm ơn, tôi sợ nó như vậy, vì vậy nó có nghĩa là, nó sẽ không được giao dịch, phải không? –
@EranMedan: vâng, nhưng có một cách giải quyết khác. Xem câu trả lời được cập nhật. –