2011-10-13 13 views
11

シェル、私のクエリは次のとおりです。更新クエリは、シェルで

db.checkin_4e95ae0926abe9ad28000001.update({location_city:"New York"}, {location_country: "FUDGE!"}); 

しかし、それは実際に私のレコードを更新しません。どちらもエラーではありません。私はこれを実行した後db.checkin_4e95ae0926abe9ad28000001.find({location_city:"New York"});を行うと、私はすべての結果を得るが、location_countryは変わっていない:update関数の2番目のパラメータで使用すると、以下の例のようにlocation_countryを更新するために$set演算子を使用する必要があるため

{ 
    "_id": ObjectId("4e970209a0290b70660009e9"), 
    "addedOn": ISODate("2011-10-13T15:21:45.772Z"), 
    "location_address1": "", 
    "location_city": "New York", 
    "location_country": "United States", 
    "location_latLong": { 
     "xLon": -74.007124, 
     "yLat": 40.71455 
    }, 
    "location_source": "socialprofile", 
    "location_state": "New York", 
    "location_zip": "" 
} 

答えて

22

はこれがあります:

db.checkin_4e95ae0926abe9ad28000001.update(
    {location_city:"New York"}, //find criteria 
    // this row contains fix with $set oper 
    { $set : { location_country: "FUDGE!"}}); 

Here利用可能な更新演算子のリストを見つけることができます。