2

コマンドラインからフィールドを更新しようとしています (mongo シェルからではありません)。

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 :

同じための助けはありますか?

4

1 に答える 1

2

基本的に引用のみです。通常、シェルは内部的により寛容ですが、それ以外の場合は有効な 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 })
于 2014-10-24T07:07:16.190 に答える