103 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			103 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
| data:
 | |
|     - {_id: 1, x: 11}
 | |
|     - {_id: 2, x: 22}
 | |
|     - {_id: 3, x: 33}
 | |
| minServerVersion: '2.6'
 | |
| 
 | |
| tests:
 | |
|     -
 | |
|         description: "ReplaceOne when many documents match"
 | |
|         operation:
 | |
|             name: "replaceOne"
 | |
|             arguments:
 | |
|                 filter: 
 | |
|                     _id: {$gt: 1}
 | |
|                 replacement: {x: 111}
 | |
| 
 | |
|         outcome:
 | |
|             result:
 | |
|                 matchedCount: 1
 | |
|                 modifiedCount: 1
 | |
|                 upsertedCount: 0
 | |
|             # Can't verify collection data because we don't have a way of
 | |
|             # knowing which document gets updated.
 | |
|     -
 | |
|         description: "ReplaceOne when one document matches"
 | |
|         operation:
 | |
|             name: "replaceOne"
 | |
|             arguments:
 | |
|                 filter: {_id: 1}
 | |
|                 replacement: {_id: 1, x: 111}
 | |
| 
 | |
|         outcome:
 | |
|             result:
 | |
|                 matchedCount: 1
 | |
|                 modifiedCount: 1
 | |
|                 upsertedCount: 0
 | |
|             collection:
 | |
|                 data:
 | |
|                     - {_id: 1, x: 111}
 | |
|                     - {_id: 2, x: 22}
 | |
|                     - {_id: 3, x: 33}
 | |
|     -
 | |
|         description: "ReplaceOne when no documents match"
 | |
|         operation:
 | |
|             name: "replaceOne"
 | |
|             arguments:
 | |
|                 filter: {_id: 4}
 | |
|                 replacement: {_id: 4, x: 1}
 | |
| 
 | |
|         outcome:
 | |
|             result:
 | |
|                 matchedCount: 0
 | |
|                 modifiedCount: 0
 | |
|                 upsertedCount: 0
 | |
|             collection:
 | |
|                 data:
 | |
|                     - {_id: 1, x: 11}
 | |
|                     - {_id: 2, x: 22}
 | |
|                     - {_id: 3, x: 33}
 | |
|     -
 | |
|         description: "ReplaceOne with upsert when no documents match without an id specified"
 | |
|         operation:
 | |
|             name: "replaceOne"
 | |
|             arguments:
 | |
|                 filter: {_id: 4}
 | |
|                 replacement: {x: 1}
 | |
|                 upsert: true
 | |
| 
 | |
|         outcome:
 | |
|             result:
 | |
|                 matchedCount: 0
 | |
|                 modifiedCount: 0
 | |
|                 upsertedCount: 1
 | |
|                 upsertedId: 4
 | |
|             collection:
 | |
|                 data:
 | |
|                     - {_id: 1, x: 11}
 | |
|                     - {_id: 2, x: 22}
 | |
|                     - {_id: 3, x: 33}
 | |
|                     - {_id: 4, x: 1}
 | |
| 
 | |
|     -
 | |
|         description: "ReplaceOne with upsert when no documents match with an id specified"
 | |
|         operation:
 | |
|             name: "replaceOne"
 | |
|             arguments:
 | |
|                 filter: {_id: 4}
 | |
|                 replacement: {_id: 4, x: 1}
 | |
|                 upsert: true
 | |
| 
 | |
|         outcome:
 | |
|             result:
 | |
|                 matchedCount: 0
 | |
|                 modifiedCount: 0
 | |
|                 upsertedCount: 1
 | |
|                 upsertedId: 4
 | |
|             collection:
 | |
|                 data:
 | |
|                     - {_id: 1, x: 11}
 | |
|                     - {_id: 2, x: 22}
 | |
|                     - {_id: 3, x: 33}
 | |
|                     - {_id: 4, x: 1}
 |