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

MongoDBで一括アップサート/更新を適切に行う方法

    ここでの構文は基本的に正しいですが、一般的な実行が間違っていたため、他の変更から「アップサート」アクションを「分離」する必要がありました。そうしないと、「衝突」し、「アップサート」が発生したときにエラーが発生します。

    LineupPointsRecord.native(function (err,collection) {
    
        var bulk = collection.initializeOrderedBulkOp();
    
        // Match and update only. Do not attempt upsert
        bulk.find({
            "teamId": lineUpPointsGeneralRecord.teamId,
            "round": 0
        }).updateOne({
            "$inc": { "lfPoints": roundPoints },
            "$push": { "roundPoints": roundPoints }
        });
    
        // Attempt upsert with $setOnInsert only
        bulk.find({
            "teamId": lineUpPointsGeneralRecord.teamId,
            "round": 0
        }).upsert().updateOne({
            "$setOnInsert": lineUpPointsGeneralRecord
        });
    
        bulk.execute(function (err,updateResult) {
            sails.log.debug(err,updateResult);
        });
    });
    

    sails-mongo を確認してください は、バルク操作を適切にサポートする最新バージョンであり、最近のノードネイティブドライバーが含まれています。最新のものはv2ドライバーをサポートしており、これは問題ありません。



    1. mongodbのmap/reduceでステップバイステップでデバッグする方法

    2. マスターデータベースとしてMongoDBを使用する場合、エンティティ間の関係を実装するために別のグラフデータベースを使用する必要がありますか?

    3. MongoDB-リレーションシップを作成する

    4. モジュールが見つかりません:エラー:webpackとのバンドル中にモジュール'module'mongodbを解決できません