Docs Menu
Docs Home
/ /
Operadores de tuberías de agregación

$tsSecond (agregación)

$tsSecond

Nuevo en la versión 5.1.

Devuelve los segundos de un marca de tiempo como.long

$tsSecond sintaxis:

{ $tsSecond: <expression> }

La expresión debe resolverse en una marca de tiempo.

Tip

$tsSecond devoluciones:

Cree una colección stockSales que contenga las ventas del mercado financiero de acciones de la empresa:

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) }
] )

En el constructor de marca de tiempo,:

El siguiente ejemplo utiliza en $tsSecond $project una etapa de canalización para devolver los segundos saleTimestamp del campo de ventas de stock:

db.stockSales.aggregate( [
{
$project:
{
_id: 0, saleTimestamp: 1, saleSeconds: { $tsSecond: "$saleTimestamp" }
}
}
] )

Ejemplo de salida:

{
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")
}

El ejemplo de esta sección utiliza $tsSecond en un cursor de flujo de cambios para monitorear los cambios en una colección.

Crea un cursor de flujo de cambios en una colección llamada cakeSales que verás más adelante en esta sección:

cakeSalesCursor = db.cakeSales.watch( [
{
$addFields: {
clusterTimeSeconds: { $tsSecond: "$clusterTime" }
}
}
] )

En el ejemplo, el:

  • db.collection.watch() El método crea un cursor de flujo de cambio para la cakeSales colección y almacena el cursor cakeSalesCursor en.

  • $addFields La etapa agrega un campo llamado clusterTimeSeconds cakeSalesCursora.

    • $clusterTime Marca de tiempo de la entrada del registro de operaciones para el cakeSales cambio de colección. Consulte la respuesta del comando.

    • $tsSecond devuelve los segundos $clusterTime de, que se almacena clusterTimeSeconds en.

Crea una colección de cakeSales que incluya ventas de pasteles en el estado de California (CA) y Washington (WA):

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 }
] )

Para supervisar los cakeSales cambios de la colección,cakeSalesCursor utilice. Por ejemplo, para obtener el siguiente documento cakeSalesCursor de, utilice el next() método:

cakeSalesCursor.next()

El siguiente ejemplo muestra los detalles insert del primer documento añadido a la colección cakeSales. El campo clusterTimeSeconds contiene los segundos del campo 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

Volver

$tsIncrement

En esta página