Soy un poco nuevo en MongoDB y Mongoose y quiero convertir la marca de tiempo creada de Mongo en una marca de tiempo de Unix para facilitar la comparación.
async getComments(params) { //user who the comments was made for let _id = params; try { //get comments for current user let uFilter = { user: _id }; let uFields = { comment: 1, createdBy: 1, created: 1 }; const resultsData = await Comments.find(uFilter, uFields).populate({ path: 'createdBy', select: ['firstName', 'lastName'], }); console.log(resultsData); return { d: resultsData }; } catch (error) { console.log(error); return false; } }Lo que obtengo es:
{ _id: new ObjectId("0000000000000000000"), comment: 'Comment made by user', created: 2022-01-13T09:21:25.689Z, createdBy: { _id: new ObjectId("61b750324596e539c7cadb9b"), firstName: 'John', lastName: 'Doe' }}
entonces el campo creado que quiero convertir en una marca de tiempo de Unix. ¿Alguna sugerencia?
Así es como lo hago en la interfaz: -
const { DateTime } = require('luxon') module.exports.getMongoTimestamp = timestamp => { const timeStampArgs = timestamp.toString().split(' ') const timestampUnix = DateTime.fromRFC2822(`${timeStampArgs[0]}, ${timeStampArgs[2]} ${timeStampArgs[1]} ${timeStampArgs[3]} ${timeStampArgs[4]} ${timeStampArgs[5].replace('GMT', '')}`).toMillis() return parseInt(timestampUnix, 10) }¡Estoy usando Luxon para hacerlo!