108 lines
2.8 KiB
YAML
108 lines
2.8 KiB
YAML
description: "updateMany-let"
|
|
|
|
schemaVersion: "1.0"
|
|
|
|
createEntities:
|
|
- client:
|
|
id: &client0 client0
|
|
observeEvents: [ commandStartedEvent ]
|
|
- database:
|
|
id: &database0 database0
|
|
client: *client0
|
|
databaseName: &database0Name crud-tests
|
|
- collection:
|
|
id: &collection0 collection0
|
|
database: *database0
|
|
collectionName: &collection0Name coll0
|
|
|
|
initialData: &initialData
|
|
- collectionName: *collection0Name
|
|
databaseName: *database0Name
|
|
documents:
|
|
- { _id: 1 }
|
|
- { _id: 2, name: "name" }
|
|
- { _id: 3, name: "name" }
|
|
|
|
|
|
tests:
|
|
- description: "updateMany with let option"
|
|
runOnRequirements:
|
|
- minServerVersion: "5.0"
|
|
operations:
|
|
- name: updateMany
|
|
object: *collection0
|
|
arguments:
|
|
filter: &filter
|
|
$expr:
|
|
$eq: [ "$name", "$$name" ]
|
|
update: &update
|
|
- $set: {x: "$$x", y: "$$y" }
|
|
let: &let0
|
|
name: name
|
|
x: foo
|
|
y: { $literal: "bar" }
|
|
expectResult:
|
|
matchedCount: 2
|
|
modifiedCount: 2
|
|
upsertedCount: 0
|
|
expectEvents:
|
|
- client: *client0
|
|
events:
|
|
- commandStartedEvent:
|
|
command:
|
|
update: *collection0Name
|
|
updates:
|
|
-
|
|
q: *filter
|
|
u: *update
|
|
multi: true
|
|
upsert: { $$unsetOrMatches: false }
|
|
let: *let0
|
|
outcome:
|
|
-
|
|
collectionName: *collection0Name
|
|
databaseName: *database0Name
|
|
documents:
|
|
- { _id: 1 }
|
|
- { _id: 2, name: "name", x: "foo", y: "bar" }
|
|
- { _id: 3, name: "name", x: "foo", y: "bar" }
|
|
|
|
- description: "updateMany with let option unsupported (server-side error)"
|
|
runOnRequirements:
|
|
- minServerVersion: "4.2.0"
|
|
maxServerVersion: "4.4.99"
|
|
operations:
|
|
- name: updateMany
|
|
object: *collection0
|
|
arguments:
|
|
filter: &filter1
|
|
_id: 1
|
|
update: &update1
|
|
- $set: {x: "$$x"}
|
|
let: &let1
|
|
x: foo
|
|
expectError:
|
|
errorContains: "'update.let' is an unknown field"
|
|
isClientError: false
|
|
expectEvents:
|
|
- client: *client0
|
|
events:
|
|
- commandStartedEvent:
|
|
command:
|
|
update: *collection0Name
|
|
updates:
|
|
-
|
|
q: *filter1
|
|
u: *update1
|
|
multi: true
|
|
upsert: { $$unsetOrMatches: false }
|
|
let: *let1
|
|
outcome:
|
|
-
|
|
collectionName: *collection0Name
|
|
databaseName: *database0Name
|
|
documents:
|
|
- { _id: 1 }
|
|
- { _id: 2, name: "name" }
|
|
- { _id: 3, name: "name" }
|