На данный момент нашел только такое решение. А как добиться того, чтобы _id сохранялся сам по себе так и не разобрался.
Еще вопрос: можно ли обновлять только те значения, которые передаются в req.body. Например: передаем только новое имя, без фото. У меня почему-то в этом случае пропадает поле photo.
app.put('/models', (req, res) => {
var d = Devices.update(
{ 'models._id': req.body.modelID },
{ $set: { 'models.$._id': req.body.modelID, 'models.$.name': req.body.name, 'models.$.photo': req.body.photo } },
(err, result) => {
if (err) {
res.send(err)
} else {
res.send(result)
}
})
})
Схема выглядит так:
var DevicesSchema = new mongoose.Schema({
name: {
type: String,
trim: true,
unique: true
},
photo: {
type: String,
trim: true,
unique: true
},
models: [ {
name: {
type: String,
trim: true,
unique: true
},
photo: {
type: String,
trim: true
},
services: [ {
name: String,
price: Number,
duration: Number,
guarantee: Number
}
]
}
]
});