如何从命令行更新mongodb字符串字段?

时间:2014-10-24 06:57:17

标签: javascript mongodb mongodb-query mongodb-shell

我正在尝试从命令行更新字段(不是来自mongo shell)

mongo mydb --eval "db.users.update({}, { $set : {  email : "email@email.com" } })"

结果

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

再次尝试

mongo mydb --eval "db.users.update({}, { $set : {  email : \"email@email.com\" } })"

相同的结果

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

对此有何帮助?

1 个答案:

答案 0 :(得分:1)

这基本上只是引用。 shell通常在内部更宽容,但确实期望有效的JSON:

mongo mydb --eval "db.users.update({}, { '$set': {  'email' : 'email@email.com' } })"
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": "email@email.com" } },{ "multi": true })