Press n or j to go to the next uncovered block, b, p or k for the previous block.
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 | 135x 135x 241x 241x 241x 285x 197x 197x 197x 44x 44x | import type { Document } from '../../bson'; import type { Collection } from '../../collection'; import type { Server } from '../../sdam/server'; import type { ClientSession } from '../../sessions'; import { type TimeoutContext } from '../../timeout'; import { AbstractOperation } from '../operation'; /** * @public */ export interface SearchIndexDescription extends Document { /** The name of the index. */ name?: string; /** The index definition. */ definition: Document; /** The type of the index. Currently `search` or `vectorSearch` are supported. */ type?: string; } /** @internal */ export class CreateSearchIndexesOperation extends AbstractOperation<string[]> { constructor( private readonly collection: Collection, private readonly descriptions: ReadonlyArray<SearchIndexDescription> ) { super(); } override get commandName() { return 'createSearchIndexes' as const; } override async execute( server: Server, session: ClientSession | undefined, timeoutContext: TimeoutContext ): Promise<string[]> { const namespace = this.collection.fullNamespace; const command = { createSearchIndexes: namespace.collection, indexes: this.descriptions }; const res = await server.command(namespace, command, { session, timeoutContext }); const indexesCreated: Array<{ name: string }> = res?.indexesCreated ?? []; return indexesCreated.map(({ name }) => name); } } |