On this page本页内容
New in version 5.1.在版本5.1中新增。
Returns the seconds from a timestamp as a 以long
.long
形式返回timestamp
中的秒数。
$tsSecond
syntax:语法:
{ $tsSecond: <expression> }
The expression must resolve to a timestamp.表达式必须解析为timestamp
。
$tsSecond
returns:返回:
Null
if the input expression evaluates to null
or refers to a field that is missing.Null
或引用缺少的字段,则为Null
。timestamp
,则为错误。Create a 创建包含公司股票金融市场销售额的stockSales
collection that contains company stock financial market sales:stockSales
集合:
db.stockSales.insertMany( [ { _id: 0, symbol: "ABC", saleTimestamp: Timestamp(1622731060, 1) }, { _id: 1, symbol: "ABC", saleTimestamp: Timestamp(1622731060, 2) }, { _id: 2, symbol: "DEF", saleTimestamp: Timestamp(1714124193, 1) }, { _id: 3, symbol: "DEF", saleTimestamp: Timestamp(1714124193, 2) }, { _id: 4, symbol: "DEF", saleTimestamp: Timestamp(1714124193, 3) } ] )
In the timestamp constructor, the:在timestamp
构造函数中
The following example uses 以下示例使用$tsSecond
in a $project
pipeline stage to return the seconds from the stock sales saleTimestamp
field:$project
管道阶段中的$tsSecond
从库存销售saleTimestamp
字段返回秒数:
db.stockSales.aggregate( [ { $project: { _id: 0, saleTimestamp: 1, saleSeconds: { $tsSecond: "$saleTimestamp" } } } ] )
Example output:示例输出:
{ 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
in a Change Stream Cursor to Monitor Collection Changes$tsSecond
监视集合更改The example in this section uses 本节中的示例使用更改流游标中的$tsSecond
in a change stream cursor to monitor changes to a collection.$tsSecond
来监视对集合的更改。
Create a change stream cursor on a collection named 在一个名为cakeSales
that you will see later in this section:cakeSales
的集合上创建一个变更流游标,您将在本节后面看到:
cakeSalesCursor = db.cakeSales.watch( [ { $addFields: { clusterTimeSeconds: { $tsSecond: "$clusterTime" } } } ] )
In the example, the:在该示例中:
db.collection.watch()
cakeSales
collection and stores the cursor in cakeSalesCursor
.cakeSales
集合创建更改流游标,并将游标存储在cakeSalesCursor
中。$addFields
stage adds a field named 阶段将名为clusterTimeSeconds
to cakeSalesCursor
.clusterTimeSeconds
的字段添加到cakeSalesCursor
。
$clusterTime
cakeSales
collection change. cakeSales
集合更改的oplog条目的时间戳。$tsSecond
$clusterTime
, which is stored in clusterTimeSeconds
.$clusterTime
中的秒数,该秒数存储在clusterTimeSeconds
中。Create a 创建包含加利福尼亚州(cakeSales
collection that contains cake sales in the states of California (CA
) and Washington (WA
):CA
)和华盛顿州(WA
)蛋糕销售的cakeSales
集合:
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 } ] )
To monitor the 要监视cakeSales
collection changes, use cakeSalesCursor
. cakeSales
集合更改,请使用cakeSalesCursor
。For example, to obtain the next document from 例如,要从cakeSalesCursor
, use the next()
method:cakeSalesCursor
获取下一个文档,请使用next()
方法:
cakeSalesCursor.next()
The following example output shows the 以下示例输出显示了添加到insert
details for the first document added to the cakeSales
collection. cakeSales
集合的第一个文档的insert
详细信息。The clusterTimeSeconds
field contains the seconds from the clusterTime
field.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