0

データベースの1つのフィールドを更新しようとしましたが、非常に紛らわしい結果が得られました。

以前のフィールド「zipcode」を見てください。

''

1153

しかし、私は別の価値を入れようとしました

> db.users.find()
{ "_id" : ObjectId("51265a5ebdbff320f02007a4"), "region_code" : "NY", "region_name" : "New York", "secret_answer2" : "Mercedes", "l_name" : "Gonzalez", "f_name" : "Zachary", "month" : 5, "country_name" : "United States", "country_code" : "US", "year" : 1970, "password" : "xxxxxx", "day" : 2, "metrocode" : "501", "city" : "New York", "secret_answer" : "xxxxxx", "zipcode" : "", "longitude" : xxxxxxx, "areacode" : "212", "ip" : "xxxxxxx", "latitude" : xxxxxx }
> db.users.update({_id: ObjectId("51265a5ebdbff320f02007a4")}, {$set: {zipcode:02201} } )
> db.users.find()
{ "_id" : ObjectId("51265a5ebdbff320f02007a4"), "region_code" : "NY", "region_name" : "New York", "secret_answer2" : "Mercedes", "l_name" : "Gonzalez", "f_name" : "Zachary", "month" : 5, "country_name" : "United States", "country_code" : "US", "year" : 1970, "password" : "xxxxxx", "day" : 2, "metrocode" : "501", "city" : "New York", "secret_answer" : "xxxxxx", "zipcode" : 1153, "longitude" : xxxxxxx, "areacode" : "212", "ip" : "xxxxxxx", "latitude" : xxxxxx }

更新しました:

> db.users.find({},{zipcode:1})
{ "_id" : ObjectId("51265a5ebdbff320f02007a4"), "zipcode" : 1153 }
> db.users.update({_id:ObjectId("51265a5ebdbff320f02007a4")}, {$set:{zipcode:02201}})
> db.users.find({},{zipcode:1})
{ "_id" : ObjectId("51265a5ebdbff320f02007a4"), "zipcode" : 1153 }
4

1 に答える 1

1

JavaScript では、0 で始まる数値は 8 進数として解釈されます。

したがって、zipcode値を文字列として保存します。

{$set: {zipcode: '02201'}}

または小数値を使用します。

{$set: {zipcode: 2201}}
于 2013-02-21T17:57:43.233 に答える