Node/ExpressとMongoを使用して安心なAPIを作成しました。私はエンドポイントをコードする必要があります。そこでは、ユーザーの電子メールアドレスが存在する場合、レコードを更新します。もしそうでなければ、私は新しいレコードを作成する必要があります。私はこれを行う方法がわからないんだけど更新レコードがある場合ノード/エクスプレスアプリに投稿
...
は、私は、ポストまたはputメソッドを使用していますか?
Node/ExpressとMongoを使用して安心なAPIを作成しました。私はエンドポイントをコードする必要があります。そこでは、ユーザーの電子メールアドレスが存在する場合、レコードを更新します。もしそうでなければ、私は新しいレコードを作成する必要があります。私はこれを行う方法がわからないんだけど更新レコードがある場合ノード/エクスプレスアプリに投稿
...
は、私は、ポストまたはputメソッドを使用していますか?
1つの方法は、find
クエリを作成し、1に制限することです。ヌルがない場合は、x
、それ以外の場合はy
を実行します。だから、あなたはそのアプローチでifステートメントを持っています。これは、チェックしているフィールドが1つだけの場合に適しています。
もう1つの方法は、$exists
演算子を使用して正しいレコードを取得することです。したがって、電子メールがヌルのレコードの場合は、電子メールフィールドには$exists: null
を渡してください。詳細情報here。これは、複数のフィールドをチェックしている場合に便利です。
希望に役立ちます。
これが彼の問題にどのように答えているかは本当に分かりません。 – franckstifler
@franckstiflerまあ、彼はこれをどうやってどうやっていいのかわからないと言った。あなたはPUT/POSTの質問に答えた、私はそれの残りの部分を概観した –
ドキュメントに続いて、PUTはリソースを更新または作成し、POSTは作成するだけです。あなたの問題にPUTを使用する必要があります。 – franckstifler
おかげでfranckstifler!それは私がしなければならないこと、私の.postを.putに変更することですか?どのドキュメントを見ていますか? – cnak2
これは単なる規約であり、 'POST'か' PUT'のどちらかが機能することに注意してください。レコードがすでに存在するかどうかによって作成または更新するには、mongoのupsert機能を使用する必要があります。https://docs.mongodb.com/manual/reference/method/db.collection.update/を参照してください。 – Kevin