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

$listSessions

$listSessions

configデータベース内の system.sessionsコレクションに保存されているすべてのセッションを一覧表示します。 これらのセッションは、MongoDB 配置のすべてのノードに表示されます。

重要

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

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

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

{ $listSessions: <document> }

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

フィールド
説明

{ }

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

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

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

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

{ allUsers: true }

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

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

system.sessionsコレクションから、次の集計操作はすべてのセッションを一覧表示します。

注意

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

use config
db.system.sessions.aggregate( [ { $listSessions: { allUsers: true } } ] )

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

注意

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

use config
db.system.sessions.aggregate( [ { $listSessions: { users: [ {user: "myAppReader", db: "test" } ] } } ] )

system.sessionsコレクションから、次の集計操作は、アクセス制御を使用して実行された場合、現在のユーザーのすべてのセッションを一覧表示します。

use config
db.system.sessions.aggregate( [ { $listSessions: { } } ] )

アクセス制御なしで実行すると、操作はすべてのセッションを一覧表示します。

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

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

const db = client.db("config");
const collection = db.collection("system.sessions");
const pipeline = [{ $listSessions: { allUsers: true } }];
const cursor = collection.aggregate(pipeline);
return cursor;

注意

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

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

const db = client.db("config");
const collection = db.collection("system.sessions");
const pipeline = [
{
$listSessions: {
users: [{ user: "myAppReader", db: "test"}]
}
}
];
const cursor = collection.aggregate(pipeline);
return cursor;

注意

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

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

const db = client.db("config");
const collection = db.collection("system.sessions");
const pipeline = [{ $listSessions: {} }];
const cursor = collection.aggregate(pipeline);
return cursor;

アクセス制御なしで実行すると、操作はすべてのセッションを一覧表示します。

戻る

$listSearchIndexes

項目一覧