我有一个包含多个图层子文档的地图文档,并且想要实现 HTTP PATCH,因此只有给定的 JSON 属性才能更新图层子文档。以下代码有效,但我必须指定每个可以更改的属性。有更好的方法吗?
var update = {};
if (req.body.name !== undefined)
update['layers.$.name'] = req.body.name;
if (req.body.isDefault !== undefined)
update['layers.$.isDefault'] = req.body.isDefault;
if (req.body.isPublic !== undefined)
update['layers.$.isPublic'] = req.body.isPublic;
Map.model.findOneAndUpdate({_id: req.params.mapId, 'layers._id': req.params.layerId}, update, callback);