sql >> データベース >  >> NoSQL >> MongoDB

NodeJS / Mongoose / MongoDB-プル(アレイから)が機能しない

    引数リストにコールバックを含めない限り、$pullコマンドも機能しないことがわかりました。

    私の状況では、この形式は機能しませんでした:

    UserAlerts.findOneAndUpdate({userId: userId}, {$pull: {alerts: {_id: alertId}}});
    

    しかし、この形式は次のようになりました:

    UserAlerts.findOneAndUpdate({userId: userId}, {$pull: {alerts: {_id: alertId}}}, function(err, data){
      console.log(err, data);
    });
    

    ドキュメントによると、両方とも機能するはずですが、機能しないようです。その理由は、最初の方法では返されたオブジェクトに対して.exec()を呼び出す必要があるのに対し、コールバックバージョンでは自動的にexec()を呼び出すためです。私にも混乱を引き起こしました。

    したがって、次のようなことを行う必要があります:

    UserAlerts.findOneAndUpdate({userId: userId}, {$pull: {alerts: {_id: alertId}}}).exec();
    



    1. マングースモデルからスキーマ属性を取得する

    2. 設定されたデータベースと同じ名前の空のMongoデータベースを削除するにはどうすればよいですか?

    3. Mongooseを使用してMongoDBに新しいデータベースを作成することは可能ですか?

    4. MongoDB:大文字と小文字を区別せず、アクセントを区別しない