정의
버전 5.1에 추가되었습니다.
타임스탬프 에서 초를 long 로 반환합니다.
$tsSecond 구문:
{ $tsSecond: <expression> } 
행동
$tsSecond 반환합니다:
예시
타임스탬프 필드에서 초(second) 수 가져오기
회사 주식 금융 시장 판매가 포함된 stockSales 컬렉션을 만듭니다.
db.stockSales.insertMany( [    { _id: 0, symbol: "MDB", saleTimestamp: Timestamp(1622731060, 1) },    { _id: 1, symbol: "MDB", saleTimestamp: Timestamp(1622731060, 2) },    { _id: 2, symbol: "MSFT", saleTimestamp: Timestamp(1714124193, 1) },    { _id: 3, symbol: "MSFT", saleTimestamp: Timestamp(1714124193, 2) },    { _id: 4, symbol: "MSFT", saleTimestamp: Timestamp(1714124193, 3) } ] ) 
타임스탬프 생성자에서 다음을 수행합니다.
- 두 번째 값은 증가하는 서수입니다. 동일한 초 내에 여러 이벤트가 발생하는 경우 증가하는 서수는 각 이벤트를 고유하게 식별합니다. 
다음 예시에서는 $tsSecond를 $project 파이프라인 단계에서 사용하여 재고 판매 saleTimestamp 필드에서 초를 반환합니다.
db.stockSales.aggregate( [    {       $project:       {          _id: 0, saleTimestamp: 1, saleSeconds: { $tsSecond: "$saleTimestamp" }       }    } ] ) 
출력 예시:
{   saleTimestamp: Timestamp({ t: 1622731060, i: 1 }),   saleSeconds: Long("1622731060") }, {   saleTimestamp: Timestamp({ t: 1622731060, i: 2 }),   saleSeconds: Long("1622731060") }, {   saleTimestamp: Timestamp({ t: 1714124193, i: 1 }),   saleSeconds: Long("1714124193") }, {   saleTimestamp: Timestamp({ t: 1714124193, i: 2 }),   saleSeconds: Long("1714124193") }, {   saleTimestamp: Timestamp({ t: 1714124193, i: 3 }),   saleSeconds: Long("1714124193") } 
변경 스트림 커서에서 를 사용하여 컬렉션 변경 사항 모니터링 $tsSecond 
이 섹션의 예시에서는 변경 스트림 커서의 $tsSecond를 사용하여 컬렉션의 변경 내용을 모니터링합니다.
이 섹션의 뒷부분에서 볼 수 있는 cakeSales 컬렉션에 변경 스트림 커서 를 생성합니다.
cakeSalesCursor = db.cakeSales.watch( [    {       $addFields: {          clusterTimeSeconds: { $tsSecond: "$clusterTime" }       }    } ] ) 
이 예제에서는 다음과 같습니다.
- db.collection.watch()메서드는- cakeSales컬렉션에 대한 변경 스트림 커서를 만들고 커서를- cakeSalesCursor에 저장합니다.
- $addFields단계는- clusterTimeSeconds이라는 필드를- cakeSalesCursor에 추가합니다.- $clusterTime- cakeSalescollection 변경에 대한 oplog 항목의 타임스탬프입니다. 명령 응답을 참조하세요.
- $tsSecond는- clusterTimeSeconds에 저장된- $clusterTime에서 초를 반환합니다.
 
캘리포니아주(CA)와 워싱턴주(WA)의 케이크 판매량이 포함된 cakeSales collection을 생성합니다.
db.cakeSales.insertMany( [    { _id: 0, type: "chocolate", orderDate: new Date("2020-05-18T14:10:30Z"),      state: "CA", price: 13, quantity: 120 },    { _id: 1, type: "chocolate", orderDate: new Date("2021-03-20T11:30:05Z"),      state: "WA", price: 14, quantity: 140 },    { _id: 2, type: "vanilla", orderDate: new Date("2021-01-11T06:31:15Z"),      state: "CA", price: 12, quantity: 145 },    { _id: 3, type: "vanilla", orderDate: new Date("2020-02-08T13:13:23Z"),      state: "WA", price: 13, quantity: 104 },    { _id: 4, type: "strawberry", orderDate: new Date("2019-05-18T16:09:01Z"),      state: "CA", price: 41, quantity: 162 },    { _id: 5, type: "strawberry", orderDate: new Date("2019-01-08T06:12:03Z"),      state: "WA", price: 43, quantity: 134 } ] ) 
cakeSales 컬렉션 변경 사항을 모니터링하려면 cakeSalesCursor를 사용하세요. 예를 들어, cakeSalesCursor에서 다음 문서를 얻으려면 next() 메서드를 사용하세요.
cakeSalesCursor.next() 
다음 예제 출력은 cakeSales 컬렉션에 추가된 첫 번째 문서에 대한 insert 세부 정보를 보여줍니다. clusterTimeSeconds 필드에는 clusterTime 필드의 초가 포함됩니다.
_id: {   _data: '82613A4A51000000032B022C0100296E5A100495189B4131584C56AC8BA9D540799F23461E5F696400290004' }, operationType: 'insert', clusterTime: Timestamp({ t: 1631210065, i: 3 }), fullDocument: {   _id: 0,   type: 'chocolate',   orderDate: ISODate("2020-05-18T14:10:30.000Z"),   state: 'CA',   price: 13,   quantity: 120 }, ns: { db: 'test', coll: 'cakeSales' }, documentKey: { _id: 0 }, clusterTimeSeconds: 1631210065