Docs Menu
Docs Home
/
データベース マニュアル
/ / /

$listSearchIndexes(集計ステージ)

$listSearchIndexes

バージョン 7.0 の新機能: (6.0.7 以降でも利用可能

指定されたコレクションまたはビューの既存の MongoDB Search インデックスに関する情報を返します。

重要

このコマンドは、 MongoDB Atlasでホストされている配置でのみ実行できます。

コマンド構文:

db.<collection>.aggregate(
[
{
$listSearchIndexes:
{
id: <indexId>,
name: <indexName>
}
}
]
)

$listSearchIndexes 次のいずれかのフィールドを取ります。

フィールド
タイプ
必要性
説明

id

string

任意

情報を返すインデックスの ID。

name

string

任意

情報を返すインデックスの名前。

idname を両方指定することはできません。id フィールドと name フィールドの両方を省略すると、$listSearchIndexes はコレクションのすべてのMongoDB Search インデックスに関する情報を返します。

配置でアクセス制御を強制する場合、 $listSearchIndexesを実行しているユーザーは、データベースまたはコレクションに対する listSearchIndexes特権アクションを持っている必要があります。

{
resource: {
db : <database>,
collection: <collection>
},
actions: [ "listSearchIndexes" ]
}

組み込みのreadロールにはlistSearchIndexes特権が付与されます。 次の例では、 qaデータベースでreadロールを付与しています。

db.grantRolesToUser(
"<user>",
[ { role: "read", db: "qa" } ]
)

$listSearchIndexes は、ドキュメントの配列を返します。 配列内の各ドキュメントには、次のフィールドが含まれています。

フィールド
タイプ
説明

id

string

インデックスの一意の識別子。

name

string

インデックスの名前。

status

string

インデックスのステータス 。詳細については、 MongoDB Search インデックスのステータス を参照してください。

queryable

ブール値

インデックスがクエリの準備ができているかどうかを示します。

latestDefinitionVersion

ドキュメント

インデックスのバージョンを説明します。

latestDefinitionVersion.version

integer

インデックス定義に関連付けられているバージョン番号。 インデックスの定義を更新すると、バージョン番号が自動的に増加します。

latestDefinitionVersion.createdAt

date

現在のインデックス定義が作成された時間。

latestDefinition

ドキュメント

インデックスの最新の定義。 詳しくは、「検索インデックスの定義構文 」を参照してください。

statusDetail

ドキュメントの配列

各検索ホストのインデックスのステータスが含まれます( mongot )。

statusDetail.[n].hostname

string

対応するmongotのホスト名。

statusDetail.[n].status

string

対応するmongotのインデックスのステータス。

statusDetail.[n].queryable

ブール値

対応するmongotでインデックスがクエリされる準備ができているかどうかを示します。

statusDetail.[n].mainIndex

ドキュメント

対応するmongotのアクティブなインデックスに関するステータス情報が含まれます。

詳細については、「 インデックス ステータスの詳細 」を参照してください。

statusDetail.[n].stagedIndex

ドキュメント

対応するmongotでバックグラウンドでビルド中のインデックスに関するステータス情報が含まれます。 このフィールドは、既存のアクティブなインデックスを更新するために新しいインデックスを作成している場合にのみ表示されます。

詳細については、「 インデックス ステータスの詳細 」を参照してください。

synonymMappingStatus

string

インデックスのシノニム(同意語)マッピングのステータス。 このフィールドは、インデックスにシノニムが定義されている場合にのみ表示されます。 次のいずれかの値になります。

  • BUILDING

  • FAILED

  • READY

返されるステータスは、個々のmongotのシノニム(同意語)マッピングの概要です。

synonymMappingStatusDetail

ドキュメントの配列

各検索ホストでのインデックスのシノニム マッピングのステータスが含まれます( mongot )。 このフィールド(およびそのサブフィールド)は、インデックスにシノニム(同意語)が定義されている場合にのみ表示されます。

synonymMappingStatusDetail.[n].status

string

すべてのmongotプロセスにわたる対応するシノニム マッピングのステータス。

synonymMappingStatusDetail.[n].queryable

ブール値

対応するシノニム マッピングがすべてのmongotプロセスにわたるクエリをサポートできるかどうかを示します。

message

string

該当する場合、シノニム マッピングのエラーを説明します。 このシノニム マッピングのstatusFAILEDの場合にのみ表示されます。

以下の表では、次のドキュメントの埋め込みフィールドを説明していますstatusDetail.[mongot].mainIndex - statusDetail.[mongot].stagedIndex

フィールドは、特定のmongotのインデックス ステータスを説明します。

フィールド
タイプ
説明

status

string

対応するmongotでのインデックス生成の状態。

queryable

ブール値

インデックス生成が対応するmongotでクエリされる準備ができているかどうかを示します。

synonymMappingStatus

string

対応するmongotでのインデックス生成のシノニム マッピングの状態。 インデックスにシノニム(同意語)が定義されている場合にのみ存在します。

synonymMappingStatusDetails

ドキュメント

対応するmongotでのインデックスのシノニム マッピングのステータスが含まれます。 このフィールド(およびそのサブフィールド)は、インデックスにシノニム(同意語)が定義されている場合にのみ表示されます。

詳細については、 「シノニム(同意語)マッピングの詳細」 を参照してください。

definitionVersion

ドキュメント

このインデックス生成がビルドされるインデックス定義バージョンを説明します。

definitionVersion.version

integer

インデックス生成が対応するmongotで使用しているバージョン番号。 インデックス定義を更新すると、更新されたインデックスは増分されたバージョン番号で構築されます。

definitionVersion.createdAt

date

インデックス定義が作成された時間。

definition

ドキュメント

このインデックスが構築される定義。

以下の表は、次のオブジェクトの埋め込みフィールドを説明したものです。

  • statusDetail.mainIndex.synonymMappingStatusDetails.<synonymMapping>

  • statusDetail.stagedIndex.synonymMappingStatusDetails<synonymMapping>

フィールド
タイプ
説明

status

string

対応するmongotプロセス上の シノニム(同意語)マッピング のステータス。

queryable

ブール値

シノニム マッピングが対応するmongotプロセスでのクエリをサポートできるかどうかを示します。

message

string

該当する場合、シノニム マッピングのエラーを説明します。 このシノニム マッピングのstatusFAILEDの場合にのみ表示されます。

$listSearchIndexes出力のstatusフィールドは次のいずれかになります。

ステータス
説明

BUILDING

次のシナリオでは、インデックスがBUILDING状態になる可能性があります。

  • MongoDB はインデックスをビルド中、または編集したインデックスを再構築中です。

  • MongoDB Search は、コレクションへのインデックス作成の変更に追いつけません。この場合、Atlas はバックグラウンドでインデックスを再ビルドします。

インデックスがBUILDING状態の場合:

  • 新しいインデックスの場合、インデックス構築が完了するまで、 MongoDB Search はクエリにそのインデックスを使用できません。

  • 既存のインデックスの場合、 MongoDB Search はインデックスの再構築が完了するまで、クエリに古いインデックス定義を使用します。

BUILDING状態のインデックスは、クエリ可能な場合とクエリできない場合があります。

DOES_NOT_EXIST

インデックスが存在しません。

DOES_NOT_EXIST状態のインデックスは常にクエリ不可です。

DELETING

MongoDB はインデックスを削除しています。

DELETING状態のインデックスは常にクエリ不可です。

FAILED

インデックスのビルドに失敗しました。 無効なインデックス定義により、インデックスはFAILED状態になることがあります。

FAILED状態のインデックスは、クエリ可能な場合とクエリできない場合があります。

PENDING

MongoDB はまだインデックスのビルドを開始していません。

PENDING状態のインデックスは常にクエリ不可です。

READY

インデックスは準備ができており、クエリをサポートできます。

READY状態のインデックスは常にクエリ可能です。

STALE

インデックスはクエリ可能ですが、インデックス付きコレクションからのデータの複製は停止されました。 インデックスを検索すると、古いデータが返される場合があります。

レプリケーション エラーにより、インデックスがSTALE状態になることがあります。

STALE状態のインデックスは常にクエリ可能です。

バージョン 7.1 での変更: このコマンドは Atlas で実行されない場合、エラーをスローします。

db.names.aggregate( [
{ $listSearchIndexes: { } }
] )
MongoServerError: PlanExecutor error during aggregation :: caused by :: Search index commands are only supported with Atlas.

以前のリリースでは、このコマンドは Atlas で実行されない場合、空の結果を返します。

これらの例では、次のアクションを実行する方法が示されています。

次の例では、moviesコレクションのすべてのMongoDB Search インデックスを返します。

db.movies.aggregate(
[
{
$listSearchIndexes: { }
}
]
)

出力例:

[
{
id: '6524096020da840844a4c4a7',
name: 'default',
status: 'BUILDING',
queryable: true,
latestDefinitionVersion: {
version: 2,
createdAt: ISODate("2023-10-09T14:51:57.355Z")
},
latestDefinition: {
mappings: { dynamic: true },
storedSource: { include: [ 'awards.text' ] }
},
statusDetail: [
{
hostname: 'atlas-n1cm1j-shard-00-02',
status: 'BUILDING',
queryable: true,
mainIndex: {
status: 'READY',
queryable: true,
definitionVersion: {
version: 0,
createdAt: ISODate("2023-10-09T14:08:32.000Z")
},
definition: { mappings: { dynamic: true, fields: {} } }
},
stagedIndex: {
status: 'PENDING',
queryable: false,
definitionVersion: {
version: 1,
createdAt: ISODate("2023-10-09T14:51:29.000Z")
},
definition: {
mappings: { dynamic: true, fields: {} },
storedSource: true
}
}
},
{
hostname: 'atlas-n1cm1j-shard-00-01',
status: 'BUILDING',
queryable: true,
mainIndex: {
status: 'READY',
queryable: true,
definitionVersion: {
version: 0,
createdAt: ISODate("2023-10-09T14:08:32.000Z")
},
definition: { mappings: { dynamic: true, fields: {} } }
},
stagedIndex: {
status: 'PENDING',
queryable: false,
definitionVersion: {
version: 1,
createdAt: ISODate("2023-10-09T14:51:29.000Z")
},
definition: {
mappings: { dynamic: true, fields: {} },
storedSource: true
}
}
},
{
hostname: 'atlas-n1cm1j-shard-00-00',
status: 'BUILDING',
queryable: true,
mainIndex: {
status: 'READY',
queryable: true,
definitionVersion: {
version: 0,
createdAt: ISODate("2023-10-09T14:08:32.000Z")
},
definition: { mappings: { dynamic: true, fields: {} } }
}
}
]
},
{
id: '65240be420da840844a4d077',
name: 'synonym_mappings',
status: 'READY',
queryable: true,
latestDefinitionVersion: {
version: 0,
createdAt: ISODate("2023-10-09T14:19:16.305Z")
},
latestDefinition: {
mappings: {
dynamic: true,
fields: {
fullplot: { type: 'string' }
}
},
synonyms: [
{
name: 'synonym_mapping',
analyzer: 'lucene.english',
source: { collection: 'synonyms' }
}
]
},
synonymMappingStatus: 'READY',
synonymMappingStatusDetail: [
{
synonym_mapping: {
status: 'READY',
queryable: true
}
}
],
statusDetail: [
{
hostname: 'atlas-n1cm1j-shard-00-02',
status: 'READY',
queryable: true,
mainIndex: {
status: 'READY',
queryable: true,
definitionVersion: {
version: 0,
createdAt: ISODate("2023-10-09T14:19:16.000Z")
},
definition: {
mappings: {
dynamic: true,
fields: {
fullplot: {
type: 'string',
indexOptions: 'offsets',
store: true,
norms: 'include'
}
}
},
synonyms: [
{
name: 'synonym_mapping',
analyzer: 'lucene.english',
source: { collection: 'synonyms' }
}
]
},
synonymMappingStatus: 'READY',
synonymMappingStatusDetail: [
{
synonym_mapping: {
status: 'READY',
queryable: true
}
}
]
}
},
{
hostname: 'atlas-n1cm1j-shard-00-01',
status: 'READY',
queryable: true,
mainIndex: {
status: 'READY',
queryable: true,
definitionVersion: {
version: 0,
createdAt: ISODate("2023-10-09T14:19:16.000Z")
},
definition: {
mappings: {
dynamic: true,
fields: {
fullplot: {
type: 'string',
indexOptions: 'offsets',
store: true,
norms: 'include'
}
}
},
synonyms: [
{
name: 'synonym_mapping',
analyzer: 'lucene.english',
source: { collection: 'synonyms' }
}
]
},
synonymMappingStatus: 'READY',
synonymMappingStatusDetail: [
{
synonym_mapping: {
status: 'READY',
queryable: true
}
}
]
}
},
{
hostname: 'atlas-n1cm1j-shard-00-00',
status: 'READY',
queryable: true,
mainIndex: {
status: 'READY',
queryable: true,
definitionVersion: {
version: 0,
createdAt: ISODate("2023-10-09T14:19:16.000Z")
},
definition: {
mappings: {
dynamic: true,
fields: {
fullplot: {
type: 'string',
indexOptions: 'offsets',
store: true,
norms: 'include'
}
}
},
synonyms: [
{
name: 'synonym_mapping',
analyzer: 'lucene.english',
source: { collection: 'synonyms' }
}
]
},
synonymMappingStatus: 'READY',
synonymMappingStatusDetail: [
{
synonym_mapping: {
status: 'READY',
queryable: true
}
}
]
}
}
]
}
]

次の例では、 moviesコレクションでsynonym-mappingsという名前のインデックスを返します。

db.movies.aggregate(
[
{
$listSearchIndexes:
{
name: "synonym-mappings"
}
}
]
)

出力例:

[
{
id: '65240be420da840844a4d077',
name: 'synonym_mappings',
status: 'READY',
queryable: true,
latestDefinitionVersion: {
version: 0,
createdAt: ISODate("2023-10-09T14:19:16.305Z")
},
latestDefinition: {
mappings: {
dynamic: true,
fields: {
fullplot: { type: 'string' }
}
},
synonyms: [
{
name: 'synonym_mapping',
analyzer: 'lucene.english',
source: { collection: 'synonyms' }
}
]
},
synonymMappingStatus: 'READY',
synonymMappingStatusDetail: [
{
synonym_mapping: {
status: 'READY',
queryable: true
}
}
],
statusDetail: [
{
hostname: 'atlas-n1cm1j-shard-00-02',
status: 'READY',
queryable: true,
mainIndex: {
status: 'READY',
queryable: true,
definitionVersion: {
version: 0,
createdAt: ISODate("2023-10-09T14:19:16.000Z")
},
definition: {
mappings: {
dynamic: true,
fields: {
fullplot: {
type: 'string',
indexOptions: 'offsets',
store: true,
norms: 'include'
}
}
},
synonyms: [
{
name: 'synonym_mapping',
analyzer: 'lucene.english',
source: { collection: 'synonyms' }
}
]
},
synonymMappingStatus: 'READY',
synonymMappingStatusDetail: [
{
synonym_mapping: {
status: 'READY',
queryable: true
}
}
]
}
},
{
hostname: 'atlas-n1cm1j-shard-00-01',
status: 'READY',
queryable: true,
mainIndex: {
status: 'READY',
queryable: true,
definitionVersion: {
version: 0,
createdAt: ISODate("2023-10-09T14:19:16.000Z")
},
definition: {
mappings: {
dynamic: true,
fields: {
fullplot: {
type: 'string',
indexOptions: 'offsets',
store: true,
norms: 'include'
}
}
},
synonyms: [
{
name: 'synonym_mapping',
analyzer: 'lucene.english',
source: { collection: 'synonyms' }
}
]
},
synonymMappingStatus: 'READY',
synonymMappingStatusDetail: [
{
synonym_mapping: {
status: 'READY',
queryable: true
}
}
]
}
},
{
hostname: 'atlas-n1cm1j-shard-00-00',
status: 'READY',
queryable: true,
mainIndex: {
status: 'READY',
queryable: true,
definitionVersion: {
version: 0,
createdAt: ISODate("2023-10-09T14:19:16.000Z")
},
definition: {
mappings: {
dynamic: true,
fields: {
fullplot: {
type: 'string',
indexOptions: 'offsets',
store: true,
norms: 'include'
}
}
},
synonyms: [
{
name: 'synonym_mapping',
analyzer: 'lucene.english',
source: { collection: 'synonyms' }
}
]
},
synonymMappingStatus: 'READY',
synonymMappingStatusDetail: [
{
synonym_mapping: {
status: 'READY',
queryable: true
}
}
]
}
}
]
}
]

次の例では、指定された id 値を持つ検索インデックスを返します。

db.movies.aggregate(
[
{
$listSearchIndexes:
{
id: "6524096020da840844a4c4a7"
}
}
]
)

出力例:

[
{
id: '6524096020da840844a4c4a7',
name: 'default',
status: 'BUILDING',
queryable: true,
latestDefinitionVersion: {
version: 2,
createdAt: ISODate("2023-10-09T14:51:57.355Z")
},
latestDefinition: {
mappings: { dynamic: true },
storedSource: { include: [ 'awards.text' ] }
},
statusDetail: [
{
hostname: 'atlas-n1cm1j-shard-00-02',
status: 'BUILDING',
queryable: true,
mainIndex: {
status: 'READY',
queryable: true,
definitionVersion: {
version: 0,
createdAt: ISODate("2023-10-09T14:08:32.000Z")
},
definition: { mappings: { dynamic: true, fields: {} } }
},
stagedIndex: {
status: 'PENDING',
queryable: false,
definitionVersion: {
version: 1,
createdAt: ISODate("2023-10-09T14:51:29.000Z")
},
definition: {
mappings: { dynamic: true, fields: {} },
storedSource: true
}
}
},
{
hostname: 'atlas-n1cm1j-shard-00-01',
status: 'BUILDING',
queryable: true,
mainIndex: {
status: 'READY',
queryable: true,
definitionVersion: {
version: 0,
createdAt: ISODate("2023-10-09T14:08:32.000Z")
},
definition: { mappings: { dynamic: true, fields: {} } }
},
stagedIndex: {
status: 'PENDING',
queryable: false,
definitionVersion: {
version: 1,
createdAt: ISODate("2023-10-09T14:51:29.000Z")
},
definition: {
mappings: { dynamic: true, fields: {} },
storedSource: true
}
}
},
{
hostname: 'atlas-n1cm1j-shard-00-00',
status: 'BUILDING',
queryable: true,
mainIndex: {
status: 'READY',
queryable: true,
definitionVersion: {
version: 0,
createdAt: ISODate("2023-10-09T14:08:32.000Z")
},
definition: { mappings: { dynamic: true, fields: {} } }
}
}
]
}
]

MongoDB Node.jsドライバーを使用して $listSearchIndexes ステージを集計パイプラインに追加するには、パイプラインオブジェクトで $listSearchIndexes 演算子を使用します。

注意

Node.jsドライバーは、 パイプラインステージと同じ操作を実行するヘルパーメソッド listSearchIndexes() $listSearchIndexesを提供します。詳細については、 MongoDB Node.jsドライバー ドキュメントのインデックスページを参照してください。

次の例では、コレクションのすべてのMongoDB Search インデックスを返します。

const pipeline = [{ $listSearchIndexes: {} }];
const cursor = collection.aggregate(pipeline);
return cursor;

次の例では、synonym-mappings という名前のインデックスが返されます。

const pipeline = [{ $listSearchIndexes: { name: "synonym-mappings" } }];
const cursor = collection.aggregate(pipeline);
return cursor;

次の例では、指定された id 値を持つ検索インデックスを返します。

const pipeline = [{ $listSearchIndexes: { id: "6524096020da840844a4c4a7" } }];
const cursor = collection.aggregate(pipeline);
return cursor;

mongosh メソッドを使用してMongoDB Search インデックスを表示するには、db.collection.getSearchIndexes() を参照してください。

MongoDB Search インデックスを作成するには、以下を参照してください。

戻る

$listSampledQueries

項目一覧