2

meteor-collectionapi パッケージを使用してデータベースを更新しようとしています。機能をテストするために、基本的なコレクションをセットアップしました。

私はこのデータから始めています:

{ "name" : "Darrell David", "age" : "18", "gender" : "Male", "_id" : "8BW9Yg2oKByBGdnSa" }
{ "name" : "Julie Smith", "age" : "21", "gender" : "Female", "_id" : "fAaFwCEXLzrmejnJK" }
{ "name" : "Todd Davis", "age" : "32", "gender" : "Male", "_id" : "ixKjhkTmjrNte2DjP" }

ここで、最初のプレーヤーの性別を「女性」に更新したいので、CURL を使用してこれを呼び出します。

curl -H "X-Auth-Token: 97f0ad9e24ca5e0408a269748d7fe0a0" -X PUT -d "{\"$set\":{\"gender\":\"Female\"}}" http://localhost:3000/collectionapi/players/8BW9Yg2oKByBGdnSa

そして、私が最終的に得たのはこれです:

{ "_id" : "8BW9Yg2oKByBGdnSa", "" : { "gender" : "Female" } }
{ "name" : "Julie Smith", "age" : "21", "gender" : "Female", "_id" : "fAaFwCEXLzrmejnJK" }
{ "name" : "Todd Davis", "age" : "32", "gender" : "Male", "_id" : "ixKjhkTmjrNte2DjP" }

最初のプレーヤーは完全に上書きされ、名前と年齢のフィールドは失われています。

ここで何が欠けていますか?MongoDB コンソールでこのコマンドを実行すると、完全に機能します。

db.players.update(
   { _id: "8BW9Yg2oKByBGdnSa" },
   { $set: { gender: "Female" } }
)
4

1 に答える 1