Используя оболочку Mon go, я пытаюсь добавить поле, имеющее то же значение, что и существующее поле для всех документов в коллекции. Предполагая, что у нас есть два документа:
{
'foo': 'str1'
}
и
{
'foo': 'str2'
}
Я хотел бы вставить новое поле 'foo_new'
, которое имеет соответствующее значение 'foo'
в качестве значения, поэтому что документы становятся
{
'foo': 'str1'
'foo_new': 'str1'
}
и
{
'foo': 'str2'
'foo_new': 'str2'
}
Команда, которую я использую для обновления коллекции (скажем, 'coll') в оболочке Mon go,
db.coll.update({}, {$set: {'foo_new': '$foo'}}, {multi: true})
Результатом выполнения этой команды являются два обновленных документа
{
'foo': 'str1'
'foo_new': '$foo'
}
и
{
'foo': 'str2'
'foo_new': '$foo'
}
, т. Е. '$foo'
интерпретируется как литерал по некоторым причинам.