2017-06-19 8 views
0

Node/ExpressとMongoを使用して安心なAPIを作成しました。私はエンドポイントをコードする必要があります。そこでは、ユーザーの電子メールアドレスが存在する場合、レコードを更新します。もしそうでなければ、私は新しいレコードを作成する必要があります。私はこれを行う方法がわからないんだけど更新レコードがある場合ノード/エクスプレスアプリに投稿

...

は、私は、ポストまたはputメソッドを使用していますか?

+0

ドキュメントに続いて、PUTはリソースを更新または作成し、POSTは作成するだけです。あなたの問題にPUTを使用する必要があります。 – franckstifler

+0

おかげでfranckstifler!それは私がしなければならないこと、私の.postを.putに変更することですか?どのドキュメントを見ていますか? – cnak2

+0

これは単なる規約であり、 'POST'か' PUT'のどちらかが機能することに注意してください。レコードがすでに存在するかどうかによって作成または更新するには、mongoのupsert機能を使用する必要があります。https://docs.mongodb.com/manual/reference/method/db.collection.update/を参照してください。 – Kevin

答えて

1

1つの方法は、findクエリを作成し、1に制限することです。ヌルがない場合は、x、それ以外の場合はyを実行します。だから、あなたはそのアプローチでifステートメントを持っています。これは、チェックしているフィールドが1つだけの場合に適しています。

もう1つの方法は、$exists演算子を使用して正しいレコードを取得することです。したがって、電子メールがヌルのレコードの場合は、電子メールフィールドには$exists: nullを渡してください。詳細情報here。これは、複数のフィールドをチェックしている場合に便利です。

希望に役立ちます。

+0

これが彼の問題にどのように答えているかは本当に分かりません。 – franckstifler

+0

@franckstiflerまあ、彼はこれをどうやってどうやっていいのかわからないと言った。あなたはPUT/POSTの質問に答えた、私はそれの残りの部分を概観した –

関連する問題