description: operation find
schemaVersion: '1.27'
createEntities:
  - client:
      id: &client0 client0
      useMultipleMongoses: false
      observeTracingMessages:
        enableCommandPayload: true
  - database:
      id: &database0 database0
      client: *client0
      databaseName: operation-find
  - collection:
      id: &collection0 collection0
      database: database0
      collectionName: &collection0Name test
initialData:
  - collectionName: test
    databaseName: operation-find
    documents: []
tests:
  - description: find an element
    operations:
      - name: find
        object: *collection0
        arguments: { filter: { x: 1 } }

    expectTracingMessages:
      - client: *client0
        ignoreExtraSpans: false
        spans:
          - name: find operation-find.test
            attributes:
              db.system.name: mongodb
              db.namespace: operation-find
              db.collection.name: test
              db.operation.name: find
              db.operation.summary: find operation-find.test
            nested:
              - name: find
                attributes:
                  db.system.name: mongodb
                  db.namespace: operation-find
                  db.collection.name: test
                  db.command.name: find
                  network.transport: tcp
                  db.response.status_code: { $$exists: false }
                  exception.message: { $$exists: false }
                  exception.type: { $$exists: false }
                  exception.stacktrace: { $$exists: false }
                  server.address: { $$type: string }
                  server.port: { $$type: [int, long] }
                  db.query.summary: find operation-find.test
                  db.query.text:
                    $$matchAsDocument:
                      $$matchAsRoot:
                        find: test
                        filter:
                          x: 1
                  db.mongodb.server_connection_id:
                    $$type: [ int, long ]
                  db.mongodb.driver_connection_id:
                    $$type: [ int, long ]

  - description: find an element retrying failed command
    operations:
      - name: failPoint
        object: testRunner
        arguments:
          client: *client0
          failPoint:
            configureFailPoint: failCommand
            mode: { times: 1 }
            data:
              failCommands: [ find ]
              errorCode: 89
              errorLabels: [ RetryableWriteError ]

      - name: find
        object: *collection0
        arguments:
          filter: { x: 1 }
    expectTracingMessages:
      - client: *client0
        ignoreExtraSpans: true
        spans:
          - name: find operation-find.test
            attributes:
              db.system.name: mongodb
              db.namespace: operation-find
              db.collection.name: test
              db.operation.name: find
              db.operation.summary: find operation-find.test
            nested:
              - name: find
                attributes:
                  db.system.name: mongodb
                  db.namespace: operation-find
                  db.collection.name: test
                  db.command.name: find
                  network.transport: tcp
                  db.mongodb.cursor_id: { $$exists: false }
                  db.response.status_code: '89'
                  exception.message: { $$type: string }
                  exception.type: { $$type: string }
                  exception.stacktrace: { $$type: string }
                  server.address: { $$type: string }
                  server.port: { $$type: [ long, string ] }
                  db.query.summary: find operation-find.test
                  db.query.text:
                    $$matchAsDocument:
                      $$matchAsRoot:
                        find: test
                        filter:
                          x: 1
                  db.mongodb.server_connection_id:
                    $$type: [ int, long ]
                  db.mongodb.driver_connection_id:
                    $$type: [ int, long ]
              - name: find
                attributes:
                  db.system.name: mongodb
                  db.namespace: operation-find
                  db.collection.name: test
                  db.command.name: find
                  network.transport: tcp
                  db.response.status_code: { $$exists: false }
                  exception.message: { $$exists: false }
                  exception.type: { $$exists: false }
                  exception.stacktrace: { $$exists: false }
                  server.address: { $$type: string }
                  server.port: { $$type: [ int, long ] }
                  db.query.summary: find operation-find.test
                  db.query.text:
                    $$matchAsDocument:
                      $$matchAsRoot:
                        find: test
                        filter:
                          x: 1
                  db.mongodb.server_connection_id:
                    $$type: [ int, long ]
                  db.mongodb.driver_connection_id:
                    $$type: [ int, long ]
