I need to create a field on based on a condition in collection called locales:
if a place has more than 10 tables ("mesas_es"=10) the new field should be true, if the place has less than 10 tables ("mesas_es"=9)the new field should be false, the name of the new field is inspeccionar so far this is what I have get
db.locales.update({$and: [{desc_barrio_local: "GUINDALERA"},{desc_distrito_local:"SALAMANCA"},{desc_ubicacion_terraza: "Acera"}]},{$set: {inspeccionar: {$cond: {if: {$gte: ["mesas_es", 10]}, then: true, else: false}}}},{multi:true})
so far I only get a nested array containing the conditions
inspeccionar: Object $cond: Object if : Object $gte : Array then : true else : false
You need to update the documents with the aggregation pipeline as follows:
db.locales.updateMany(
{
desc_barrio_local: "GUINDALERA",
desc_distrito_local:"SALAMANCA",
desc_ubicacion_terraza: "Acera",
},
[
{ $set: {
inspeccionar: {
$gte: ["$mesas_es", 10]
}
} }
]
);