Мое myId
поле - это строка. Я хочу преобразовать его в Number, поэтому я запускаю это (после обновления поля модели Mon goose до Number
):
Post.find( { myId : { $exists : true } }).then( function(docs){
docs.forEach(function (doc) {
doc.myId = parseInt(doc.myId);
doc.save();
})
})
Однако это не работает! myId
по-прежнему является строкой в MongoDB Compass.
Он работает только при изменении значения:
Post.find( { myId : { $exists : true } }).then( function(docs){
docs.forEach(function (doc) {
doc.myId = parseInt(doc.myId) + 1000; // => This is the only way I can change the field type to Number! What gives?
doc.save();
})
})
Почему мне нужно изменить значение, чтобы изменить тип поля ?
Изменить
Если я изменю значение перед сохранением, оно также будет работать:
// This works!
doc.myId = parseInt(doc.myId) + 1;
doc.myId = doc.myId - 1;
doc.save();