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

MondoDBでネストされた配列をマルチアップデートするにはどうすればよいですか?

    $演算子を使用しているため:位置$演算子は、要素(マルチではない)を識別します 配列内の要素の位置を明示的に指定せずに更新する配列内。読み取り操作から配列要素を射影または返すには、$射影演算子を参照してください。

    以下のコードを使用して実行できます:

    db.playground.find({
      $and: [
        {
          "TargetSegments.Colors": {
            $exists: true
          }
        },
        {
           "ProjectFileId": 1
        },
        {
          "SourceLanguageId": 2
        },
        {
          "TargetSegments": {
            $elemMatch: {
              "LanguageId": 1
            }
          }
        }
      ]
    }).forEach(function(item)
    {
        var targets = item.TargetSegments;
    
        for(var index = 0; index < targets.length; index++)
        {
            var target = targets[index];
            target.Segment = null,
            target.Colors= [],
            target.Widths= [],
            target.Heights= []
        }
    
        db.playground.save(item);
    });
    



    1. Mongo DB:開始日と終了日に基づいて現在公開されているドキュメントをクエリします

    2. 'ObjectId()'ラッパーを含めずにmongo ObjectId .toStringを変換する方法-値だけですか?

    3. NodeJS + Mongoネイティブ–クエリの前にコレクションが存在するかどうかを確認します

    4. MongoDBにネストされたオブジェクトが存在する場合は更新し、存在しない場合は追加します。