연합 데이터베이스 인스턴스 쿼리 기록 검색
$queryHistory
(애그리게이션)를 사용하여 지난 7 일 동안 실행된 쿼리에 대한 세부 정보를 검색할 수 있습니다. $queryHistory
은(는) 지난 7 일 동안 실행된 애그리게이션, 찾기 및 카운트 쿼리에 대한 정보가 포함된 문서를 쿼리당 하나씩 반환합니다. $match
와 같은 후속 파이프라인 단계에서 $queryHistory
에 의해 반환된 필드를 필터링할 수 있습니다.
$queryHistory
을(를) 실행하려면 db.aggregate 헬퍼를 사용합니다. admin
데이터베이스에 대해 $queryHistory
를 실행합니다.
구문
{ $queryHistory: { allUsers: <boolean> } }
필드
필드 | 유형 | 설명 | 필요성 |
---|---|---|---|
| 부울 | 모든 사용자가 실행한 쿼리에 대해 문서를 가져올지 여부를 나타냅니다. 유효한 값은 다음과 같습니다.
이 옵션을 사용하려면 클러스터 리소스에 대한 생략하는 경우 기본값은 | 옵션 |
출력
$queryHistory
에서 반환한 각 문서에는 다음과 같은 필드가 포함되어 있습니다.
필드 | 유형 | 설명 |
---|---|---|
| 문자열 | 쿼리를 실행한 애플리케이션의 이름(있는 경우)입니다. |
| 부울 | 쿼리가 백그라운드에서 실행되었는지 여부를 나타내는 플래그입니다. 값은 다음 중 하나일 수 있습니다.
|
| 문자열 | 쿼리가 실행된 컬렉션의 이름입니다. |
| 문자열 | 쿼리와 관련된 주석(있는 경우)입니다. 쿼리에 주석이 포함되지 않은 경우 비어 있습니다. |
| 문자열 | 쿼리가 실행된 컬렉션이 포함된 데이터베이스의 이름입니다. |
| 쿼리 완료 시간입니다. | |
| 문자열 | 쿼리에서 반환된 오류(있는 경우)입니다. 쿼리 상태 |
| int | 쿼리 상태입니다. 값은 다음 중 하나일 수 있습니다.
|
| 쿼리와 연결된 작업의 고유 식별자( ObjectId 형식)입니다. 필드 값은 오류 및 로그에서 볼 수 있는 | |
| 쿼리 시작 시간입니다. | |
| 문서 | 실행된 쿼리 작업입니다. |
| 문자열 | 쿼리를 실행한 사용자의 사용자 이름(가능한 경우 |
예시
아래 예시에서는 시작하기 튜토리얼에 설명된 Database0.Collection0
컬렉션을 사용합니다.
쿼리에 대한 세부 정보 검색
아래 예시에서는 user1
가 Database0
데이터베이스의 Collection0
컬렉션에서 시작하기 튜토리얼에 설명된 쿼리 중 일부를 실행했다고 가정합니다. 다음 예시는 Database0.Collection0
컬렉션에서 user1
가 실행한 쿼리에 대한 정보를 반환합니다.
db.aggregate([{$queryHistory: {}}]).pretty()
$queryHistory
은(는) Database0.Collection0
컬렉션에서 실행된 각 쿼리에 대해 하나의 문서를 반환합니다.
{ "_id" : ObjectId("613fa06cf9521f85777d5be8"), "query" : [ { "$match" : { "bedrooms" : 3, "review_scores.review_scores_rating" : { "$gt" : 79 } } }, { "$count" : "numProperties" } ], "appName" : "MongoDB Shell", "user" : "admin.user1", "db" : "Database0", "collection" : "Collection0", "opid" : ObjectId("16a476f40ac6d97f22e4aa1f"), "startTime" : ISODate("2021-09-13T19:02:35.589Z"), "endTime" : ISODate("2021-09-13T19:03:08.730Z"), "ok" : 1, "background" : false } { "_id" : ObjectId("613fa0d4f9521f85777d6bc0"), "query" : [ { "$match" : { "bedrooms" : 3 } }, { "$sort" : { "review_scores_rating" : -1 } }, { "$limit" : NumberLong(5) } ], "appName" : "MongoDB Shell", "user" : "admin.user1", "db" : "Database0", "collection" : "Collection0", "opid" : ObjectId("16a4770e387f300c22e4bdf2"), "startTime" : ISODate("2021-09-13T19:04:28.184Z"), "endTime" : ISODate("2021-09-13T19:04:52.898Z"), "ok" : 1, "background" : false } { "_id" : ObjectId("613fa0eef9521f85777d6f6f"), "query" : [ { "$match" : { "limit" : { "$eq" : 10000 }, "products" : "Commodity" } }, { "$limit" : NumberLong(5) } ], "appName" : "MongoDB Shell", "user" : "admin.user1", "db" : "Database0", "collection" : "Collection0", "opid" : ObjectId("16a477163555e4aa22e4c53b"), "startTime" : ISODate("2021-09-13T19:05:02.342Z"), "endTime" : ISODate("2021-09-13T19:05:18.774Z"), "ok" : 1, "background" : false } { "_id" : ObjectId("613fa147f9521f85777d7b11"), "query" : [ { "$match" : { "name" : /Lannister/ } }, { "$limit" : NumberLong(10) } ], "appName" : "MongoDB Shell", "user" : "admin.user1", "db" : "Database0", "collection" : "Collection0", "opid" : ObjectId("16a4771ba072c0a122e4c9bd"), "startTime" : ISODate("2021-09-13T19:05:25.736Z"), "endTime" : ISODate("2021-09-13T19:06:47.147Z"), "ok" : 1, "background" : false } { "_id" : ObjectId("613fb9eccaba4e6430c7dcb7"), "query" : [ { "$group" : { "_id" : "$movies", "Collection0" : { "$push" : "$title" } } }, { "$out" : { "atlas" : { "projectId" : "{PROJECT_ID}", "clusterName" : "mySbx", "db" : "my_test", "coll" : "sample" } } } ], "appName" : "MongoDB Shell", "user" : "admin.user1", "db" : "admin", "collection" : "Collection0", "opid" : ObjectId("16a47ceba943e9cc00c98c62"), "startTime" : ISODate("2021-09-13T20:51:56.617Z"), "endTime" : ISODate("2021-09-13T20:51:56.642Z"), "ok" : 1, "background" : true }
$queryHistory
특정 쿼리에 대해 출력 필터링
다음 예시 에서는 시작하기 튜토리얼에 설명된 Database0.Collection0
컬렉션 에 대해 다음과 유사한 쿼리 를 실행 합니다.
쿼리 에는 $queryHistory
단계에서 반환된 결과에서 쿼리 를 식별하는 데 도움이 되는 고유 문자열이 포함되어 있습니다. 애그리게이션 명령 comment
옵션을 사용하여 쿼리 에 주석을 첨부할 수 있습니다.
use Database0 db.Collection0.aggregate([ { $match: {"account_id": 557378}},{$sort: {"transactions.symbol": -1}} ],{"comment":"exampleQuery"})
집계 명령의 옵션의 string 값을 사용하여 쿼리 기록을 검색하려면 데이터베이스에 comment
대해 다음 명령을 admin
실행합니다.
use admin db.aggregate([{$queryHistory: {}}, {$match: {"comment": "exampleQuery"}} ])
$queryHistory
지정된 문자열이 포함된 쿼리를 찾아 다음 예시와 유사한 결과를 반환합니다.
[ { "_id": ObjectId("61e1e4c29e62172566d8e9b6"), "query": [ { "$match": { "account_id": 557378} }, { "$sort": { "transactions.symbol": -1 } } ], "comment": "exampleQuery", "appName": "mongosh 1.1.8", "user": "admin.user1", "db": "Database0", "collection": "Collection0", "opid": ObjectId("16ca3ed2577016e68d60358c"), "startTime": ISODate("2022-01-14T21:01:27.346Z"), "endTime": ISODate("2022-01-14T21:01:54.627Z"), "ok": 1, "error": "", "background": false, } ]