Uploaded image for project: 'Java Driver'
  1. Java Driver
  2. JAVA-3801

Updates nesting when using Combine

    XMLWordPrintableJSON

Details

    • Icon: Bug Bug
    • Resolution: Works as Designed
    • Icon: Major - P3 Major - P3
    • None
    • None
    • None
    • None
    • Java 1.8, Driver 3.12.5, MongoDB 3.6.14.

    Description

      When using Updates.combine() on an existing Bson update object it seems to nest the updates in the driver.  Is there a better way to combine (tack-on) additional update commands to an existing update Bson object?   

       

      Example Code:

       
      @Test
      	public void testNestingOfUpdates()
      	{
      		Bson update = Updates.set("field1", "somedata1");
      		update = Updates.combine(update, Updates.set("field2", "somedata2"));
      		update = Updates.combine(update, Updates.set("field3", "somedata3"));
      		update = Updates.combine(update, Updates.set("field4", "somedata4"));
      		update = Updates.combine(update, Updates.set("field5", "somedata5"));
      		update = Updates.combine(update, Updates.set("field6", "somedata6"));
      		update = Updates.combine(update, Updates.set("field7", "somedata7"));
      		update = Updates.combine(update, Updates.set("field8", "somedata8"));
      		update = Updates.combine(update, Updates.set("field9", "somedata9"));		                
                      String x = update.toString();
      		System.out.println(x);
      	}
       

      Example output:

       

       
      Updates{updates=[Updates{updates=[Updates{updates=[Updates{updates=[Updates{updates=[Updates{updates=[Updates{updates=[Updates{updates=[Update{fieldName='field1', operator='$set', value=somedata1}, Update{fieldName='field2', operator='$set', value=somedata2}]}, Update{fieldName='field3', operator='$set', value=somedata3}]}, Update{fieldName='field4', operator='$set', value=somedata4}]}, Update{fieldName='field5', operator='$set', value=somedata5}]}, Update{fieldName='field6', operator='$set', value=somedata6}]}, Update{fieldName='field7', operator='$set', value=somedata7}]}, Update{fieldName='field8', operator='$set', value=somedata8}]}, Update{fieldName='field9', operator='$set', value=somedata9}]}

      Attachments

        Activity

          People

            ross@mongodb.com Ross Lawley
            barron.anderson@mongodb.com Barron Anderson
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: