如何仅使用mongoose保存日期部分,而不是ISODate格式

时间:2016-01-08 17:38:18

标签: node.js mongodb mongoose

如何仅使用猫鼬schmea保存日期部分。目前我的模型是这样的:

myDate: { type: Date}

即使我只通过,也会将日期保存为"2016-02-27T00:00:00.000Z":“2016-02-27”。

2 个答案:

答案 0 :(得分:1)

我正在使用:

dateOfBirth: { type: Object }

并保存如下:

dateOfBirth: {year: 1988, month: 0, day: 8}

这给了我

  1. 通过yearmonth搜索的能力
  2. 创建日期对象的能力:

    const dateOfBirth = new Date(
      user.dateOfBirth.year, 
      user.dateOfBirth.month, 
      user.dateOfBirth.day
    );
    

    这将避免时区偏移,因为date对象将在设备的环境中创建

答案 1 :(得分:0)

在幕后,一个猫鼬日期就像javascript中的<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <script src="http://netdna.bootstrapcdn.com/bootstrap/3.0.0/js/bootstrap.min.js"></script> <link href="http://netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css" rel="stylesheet"/> <div class="bs-example"> <div class="btn-group"> <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">Default <span class="caret"></span></button> <ul class="dropdown-menu" role="menu"> <li><a href="#">Action</a></li> <li><a href="#">Another action</a></li> <li><a href="#">Something else here</a></li> <li class="divider"></li> <li><a href="#">Separated link</a></li> </ul> </div> </div>:它存储小时,秒等...与SQL中的日期/日期时间没有区别。一分钱,一磅。话虽如此,这只是一个显示问题。

原因是mongo没有support这种类型。您可以使用年/月/日属性创建一个对象,但处理起来会很麻烦。