Я пытаюсь обновить поле seconds_until_start путем вычисления двух других полей. Похоже, это не работает в mongodb наиболее интуитивно понятным способом. Любые предложения о том, что еще я могу сделать, приветствуются.
db.price_scrape.update({"timestamp": {"$exists": true}},
{"$set": {
seconds_until_start: {$divide: [{$subtract: ["$marketstarttime", "$timestamp"]}, 1000]}
}},
multi=true)
The dollar ($) prefixed field '$divide' in 'seconds_until_start.$divide' is not valid for storage.
он на самом деле не отвечает на вопрос в вашей ссылке, поскольку он составляет только новое поле из двух других, но без какого-либо оператора
Короткий ответ: он не поддерживается напрямую, поэтому вам нужно использовать один из подходов, указанных в ссылке, в зависимости от вашей ситуации.

Проверьте свою версию mongo, если она не v4.2 +, ваш запрос не будет работать.
Как указал @JohnnyHK в комментарии (эта ссылка)
Отметьте первый ответ, который дает представление о том, как вы можете написать свой запрос в более ранних версиях в Mongo DB.
$divide- оператор агрегации, вы не можете использовать его вupdate. См. В здесь варианты использования значений других полей в обновлении.