1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115
|
description: entity-commandCursor
schemaVersion: '1.3'
createEntities:
- client:
id: &client client
useMultipleMongoses: false
observeEvents: [commandStartedEvent]
- database:
id: &db db
client: *client
databaseName: *db
- collection:
id: &collection collection
database: *db
collectionName: *collection
initialData:
- collectionName: collection
databaseName: *db
documents: &documents
- { _id: 1, x: 11 }
- { _id: 2, x: 22 }
- { _id: 3, x: 33 }
- { _id: 4, x: 44 }
- { _id: 5, x: 55 }
tests:
- description: runCursorCommand creates and exhausts cursor by running getMores
operations:
- name: runCursorCommand
object: *db
arguments:
commandName: find
batchSize: 2
command: { find: *collection, filter: {}, batchSize: 2 }
expectResult: *documents
expectEvents:
- client: *client
events:
- commandStartedEvent:
command:
find: *collection
filter: {}
batchSize: 2
$db: *db
lsid: { $$exists: true }
commandName: find
- commandStartedEvent:
command:
getMore: { $$type: [int, long] }
collection: *collection
$db: *db
lsid: { $$exists: true }
commandName: getMore
- commandStartedEvent:
command:
getMore: { $$type: [int, long] }
collection: *collection
$db: *db
lsid: { $$exists: true }
commandName: getMore
- description: createCommandCursor creates a cursor and stores it as an entity that can be iterated one document at a time
operations:
- name: createCommandCursor
object: *db
arguments:
commandName: find
batchSize: 2
command: { find: *collection, filter: {}, batchSize: 2 }
saveResultAsEntity: &myRunCommandCursor myRunCommandCursor
- name: iterateUntilDocumentOrError
object: *myRunCommandCursor
expectResult: { _id: 1, x: 11 }
- name: iterateUntilDocumentOrError
object: *myRunCommandCursor
expectResult: { _id: 2, x: 22 }
- name: iterateUntilDocumentOrError
object: *myRunCommandCursor
expectResult: { _id: 3, x: 33 }
- name: iterateUntilDocumentOrError
object: *myRunCommandCursor
expectResult: { _id: 4, x: 44 }
- name: iterateUntilDocumentOrError
object: *myRunCommandCursor
expectResult: { _id: 5, x: 55 }
- description: createCommandCursor's cursor can be closed and will perform a killCursors operation
operations:
- name: createCommandCursor
object: *db
arguments:
commandName: find
batchSize: 2
command: { find: *collection, filter: {}, batchSize: 2 }
saveResultAsEntity: myRunCommandCursor
- name: iterateUntilDocumentOrError
object: *myRunCommandCursor
expectResult: { _id: 1, x: 11 }
- name: close
object: *myRunCommandCursor
expectEvents:
- client: *client
events:
- commandStartedEvent:
command:
find: *collection
filter: {}
batchSize: 2
$db: *db
lsid: { $$exists: true }
commandName: find
- commandStartedEvent:
command:
killCursors: *collection
cursors: { $$type: array }
commandName: killCursors
|