Как вставить значение поля массива, если этого значения поля массива нет в базе данных? - PullRequest
1 голос
/ 12 июня 2019

У меня есть эта функция на моем бэкэнде:

exports.updatePacienteByCodigo = function (req, res) {
let codPaciente = req.params.codPaciente;
let params = req.body; // This is the data what come from frontend = {'testRealizados':['example'], 'respuestas':['example'], 'codMedico':'example'}
Paciente.findOneAndUpdate({ codPaciente: codPaciente }, {
    '$push': {
        'testsRealizados': params.testsRealizados,
        'respuestas': params.respuestas,
        'codMedico': {'$ne':params.codMedico} //here is the problem
    }
}).then(
    pacienteEncontrado => {
        if (!pacienteEncontrado) {
            res.status(404).send({ accion: 'updatePaciente', mensaje: 'Ese paciente no existe' });
        } else {
            res.status(200).send({ accion: 'updatePaciente', mensaje: 'Paciente actualizado correctamente' });
        }
    }
).catch(err => { res.status(500).send({ accion: 'updatePaciente', mensaje: 'Error ' + err }) })
};

Этот запрос выдает мне эту ошибку "Error CastError: Cast to [string] failed for value \"[{\"$ne\":\"o8qjdeli\"}]\" at path \"codMedico\""}

Что я хочу сделать, если codMedico имеют то же значениев базе данных, чем параметр codMedico не обновляет это поле.

Я пробовал, но это не сработало.У меня нет идей, поэтому я здесь.Спасибо.

[решено]

Я попытался с помощью метода $ addToSet, и он отлично работает, как @Plancke сказал мне в комментариях.

1 Ответ

0 голосов
/ 18 июля 2019

Я пытался с помощью метода $ addToSet, и он отлично работает, как @Plancke сказал мне в комментариях.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...