28

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

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

ただし、実際には私の記録は更新されません。エラーにもなりません。これを実行したdb.checkin_4e95ae0926abe9ad28000001.find({location_city:"New York"});後に実行すると、すべての結果が得られますが、location_country変更されていません:

{
    "_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": ""
}
4

4 に答える 4

32

これは、更新関数の 2 番目のパラメーターで、以下の例のように$set演算子を使用して更新する必要があるためです。location_country

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

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

于 2011-10-13T16:08:57.997 に答える
8
db.m_country.update(
    {"countryId": "962a0935-bf3d-4f63-a53c-254760273ede"}, 
    {$set: {'countryPopulation': '12540000'}})
于 2018-07-06T05:13:24.460 に答える