Как обновить строку строки mongodb из командной строки?

Я пытаюсь обновить поле из командной строки (НЕ из оболочки mongo)

mongo mydb --eval "db.users.update({}, { $set : { email : "[removed_email]" } })"

результаты в

Fri Oct 24 12:23:46.102 JavaScript execution failed: SyntaxError: Unexpected token :

Снова пытается

mongo mydb --eval "db.users.update({}, { $set : { email : \"[removed_email]\" } })"

одинаковые результаты

Fri Oct 24 12:24:05.559 JavaScript execution failed: SyntaxError: Unexpected token :

Любая помощь для того же?

1 ответ

Это в основном просто цитирование. Оболочка, как правило, более прощает внутренне, но надеется, что действительный JSON в противном случае:

mongo mydb --eval "db.users.update({}, { '$set': { 'email' : '[removed_email]' } })"
MongoDB shell version: 2.6.5
connecting to: mydb
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

Собственно, чтобы играть более красиво с другими модификаторами, такими как multi затем изменить тип используемых кавычек:

mongo mydb --eval 'db.users.update({}, { "$set": { "email": "[removed_email]" } },{ "multi": true })

licensed under cc by-sa 3.0 with attribution.