首页 > 解决方案 > 使用 moment.js 来指示 mongoDB/mongoose 上次更新的时间?

问题描述

我有一个填充了我的 mongoDB 数据的表,我想使用 moment.js 来指示表中任何条目被编辑和更新的最后日期/时间。

我的问题是 moment.js 似乎实时显示日期/时间,而不仅仅是在编辑数据库条目时。

如何让它显示正确的日期和时间?

Mongoose Schema,我在其中使用时间戳来实现该updatedAt功能:

var environmentSchema = new mongoose.Schema({
    ePIMS: String,
    codeVersion: String,
    region: String
  }, {
    timestamps: true
  });

我尝试使用 moment.js 的 HTML

<table>
   <%= moment(environments.updatedAt) %> <!-- using it here causes the date/time to update in real time -->

   <% environments.forEach(function(environment){ %>
    <!-- if I use the moment.js code here, it shows it 3 times for all three of the ```td```'s below -->
     <tr>

         <td><%= environment.ePIMS %></td>
         <td><%= environment.codeVersion %></td>
         <td><%= environment.region %></td>

     </tr>
   <% }); %> 
 </table>

顺便说一句,当我将 moment.js 代码放入我的 mongo 集合(environments)被调用的 forEach 循环中时,它可以工作,但是它会显示我数据库中每个条目的日期和时间,并更新这些日期/时间分别。有没有办法做到这一点,但所有条目只有一个日期/时间?

标签: htmlnode.jsmongodbmongoosemomentjs

解决方案


  • Environments 是一组环境对象,您正在尝试对其进行更新。
  • 您需要获取一个环境对象并获取该单个对象的 UpdatedAt。
  • 所以你可以把 [index] 主要是 [0]environments[0].updatedAt来获取第一个环境的 updatedAt 。
  • 要获得最新的sort({"updatedAt": -1}),然后environments[0].updatedAt

推荐阅读