AI エージェント向け: ドキュメントインデックスは https://www.mongodb.com/ja-jp/docs/llms.txt で利用できます。すべてのページの markdown バージョンは、いずれかの URL パスに .md を追加することで利用できます。
Docs Menu

$listLocalSessions(集計ステージ)

$listLocalSessions

mongodまたはmongosインスタンスによってメモリにキャッシュされたセッションを一覧表示します。

重要

ユーザーがmongod またはmongos インスタンスでセッションを作成すると、セッションのレコードは最初はインスタンスのメモリ内にのみ存在します。つまり、レコードはインスタンスに対してローカルです。インスタンスはキャッシュされたセッションをsystem.sessions configデータベースの コレクションに定期的に同期します。同期されると、$listSessions と配置のすべてのノードにそのセッションが表示されます。セッションレコードが コレクションに存在するまでは、system.sessions $listLocalSessions操作によってのみセッションを一覧表示できます。

$listLocalSessions操作では、db.aggregate() ではなく db.collection.aggregate()メソッドが使用されます。

$listLocalSessionsを実行するには、パイプラインの最初のステージである必要があります。

このステージの構文は、次のとおりです。

{ $listLocalSessions: <document> }

$listLocalSessionsステージは、次のいずれかの内容を持つドキュメントを取得します。

フィールド
説明

{ }

アクセス制御を使用して実行している場合、 は現在認証されているユーザーのすべてのセッションを返します。

アクセス制御なしで実行している場合、 はすべてのセッションを返します。

{ users: [ { user: <user>, db: <db> }, ... ] }

指定されたユーザーのすべてのセッションを返します。 アクセス制御を使用して実行中の場合、認証されたユーザーは、他のユーザーのセッションを一覧表示するには、クラスターに対してlistSessionsアクションの特権を持っている必要があります。

{ allUsers: true }

すべてのユーザーのすべてのセッションを返します。 アクセス制御を使用して実行している場合、認証されたユーザーにはクラスターでのlistSessionsアクション権限が必要です。

$listLocalSessions トランザクションでは許可されていません。

接続されたmongod / mongosインスタンスのメモリ内セッション キャッシュから、次の集計操作はすべてのセッションを一覧表示します。

注意

アクセス制御を使用して実行中の場合、現在のユーザーにはクラスターに対するlistSessionsアクションの特権が必要です。

db.aggregate( [ { $listLocalSessions: { allUsers: true } } ] )

接続された mongod または mongos インスタンスのメモリ内キャッシュから、次の集計操作は、指定されたユーザー myAppReader@test のすべてのセッションを一覧表示します。

注意

アクセス制御を使用して実行中で、現在のユーザーが指定されたユーザーでない場合、現在のユーザーにはクラスターに対するlistSessionsアクションの権限が必要です。

db.aggregate( [ { $listLocalSessions: { users: [ { user: "myAppReader", db: "test" } ] } } ] )

接続されたmongod / mongosインスタンスのメモリ内キャッシュから、次の集計操作は、アクセス制御を使用して実行された場合、現在のユーザーのすべてのセッションを一覧表示します。

db.aggregate( [ { $listLocalSessions: { } } ] )

アクセス制御なしで実行すると、操作にはすべてのローカル セッションが一覧表示されます。

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

次の集計操作は、すべてのローカル セッションを一覧表示します。

const pipeline = [{ $listLocalSessions: { allUsers: true } }];
const cursor = db.aggregate(pipeline);
return cursor;

注意

アクセス制御を使用して実行中の場合、現在のユーザーにはクラスターに対するlistSessionsアクションの特権が必要です。

次の集計操作では、指定されたユーザー myAppReader@test のすべてのセッションが一覧表示されます。

const pipeline = [
{
$listLocalSessions: {
users: [{ user: "myAppReader", db: "test"}]
}
}
];
const cursor = db.aggregate(pipeline);
return cursor;

注意

アクセス制御を使用して実行中で、現在のユーザーが指定されたユーザーでない場合、現在のユーザーにはクラスターに対するlistSessionsアクションの権限が必要です。

アクセス制御を使用して実行すると、次の集計操作には現在のユーザーのすべてのセッションが一覧表示されます。

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

アクセス制御なしで実行すると、操作にはすべてのローカル セッションが一覧表示されます。

$listLocalSessions メモリにキャッシュされたセッションごとに 1 つのドキュメントを含むカーソルを返します。各ドキュメントには次のプロトタイプがあります。

{
_id: {
id: <UUID>,
uid: <BinData>
},
lastUse: <date>
}
フィールド
タイプ
説明

_id.id

UUID

セッションの全域一意の識別子 (UUID)。

_id.uid

BinData

セッションに関連付けられた認証されたユーザーの認証情報のハッシュ。

lastUse

date

セッションが最後に使用された日時。

このページを評価