2017-01-04 6 views
0

Я пытаюсь обновить данные MongoDB, используя этот код: db.medicines.update({"_id":"586a048e34e5c12614a7424a"}, {$set: {amount:'3'}})MongoDB Обновление коллекции в

но unfortantly запрос не распознает селектор "_id":"586a048e34e5c12614a7424a", даже если его не существует. Его succsed при изменении ключа к другому, как: name, rate и т.д ..

есть специальный способ использования обновления с _id параметром?

Спасибо за голову.

+2

Try 'db.medicines.update ({ "_ идентификатор": ObjectId ("586a048e34e5c12614a7424a")}, {$ набор: {количество: '3'}})' – Veeram

ответ

2

_id будет уникальным ObjectId, который mongodb генерирует для каждого документа перед его вставкой. Задание запроса работает, потому что _id является ObjectId и "586a048e34e5c12614a7424a" является String. Вам необходимо обернуть _idObjectId().

Если вы используете MongoDB запрос

db.medicines.update({ 
    "_id": ObjectId("586a048e34e5c12614a7424a") 
}, { 
    $set: { 
    amount: '3' 
    } 
}); 

Если вы используете mongoose. Вы можете использовать findByIdAndUpdate

db.medicines.findByIdAndUpdate({ 
    "_id": "586a048e34e5c12614a7424a" 
}, { 
    $set: { 
    amount: '3' 
    } 
}); 
Смежные вопросы