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

Mongooseでドキュメントを更新/アップサートするにはどうすればよいですか?

    Mongooseは、findOneAndUpdate(MongoDB findAndModifyを呼び出す)でこれをネイティブにサポートするようになりました。

    upsert =trueオプションは、オブジェクトが存在しない場合にオブジェクトを作成します。 デフォルトはfalse

    var query = {'username': req.user.username};
    req.newData.username = req.user.username;
    
    MyModel.findOneAndUpdate(query, req.newData, {upsert: true}, function(err, doc) {
        if (err) return res.send(500, {error: err});
        return res.send('Succesfully saved.');
    });
    

    古いバージョンでは、Mongooseはこのメソッドでこれらのフックをサポートしていません:

    • デフォルト
    • セッター
    • バリデーター
    • ミドルウェア


    1. カスタムredis-クライアントのコンパイルに失敗する

    2. redisサーバーを実行し続ける方法

    3. mongodbコレクションから最大値を取得する方法

    4. MongoDB'$geoNearクエリのインデックスが見つかりません'