如何搜索mongodb字符串格式的日期

ldxq2e6h  于 2023-03-17  发布在  Go
关注(0)|答案(1)|浏览(110)

请告知如何在MongoDB中搜索日期格式
我的mongodb数据的数据类型是字符串

{ymdhis:"2023-03-14T09:10:37.000+00:00"}

那个表单的日期是以字符串的形式存储的。我如何检索它呢?
例如,我想这样搜索

{ymdhis:{'$gte':2023-03-14 00:00:00,'$lte':2023-03-14 23:59:59}}

到我的javascript代码这没有结果

{'todate':{'$toDate':'$ymdhis'}}
{'ymdhis':{'$gte':new Date(new Date('2023-03-14 00:00:00').getTime()+9*3600000)}}

我怎样才能得到结果

enyaitl3

enyaitl31#

这是定义模式的一种方法:

var mongoose = require('mongoose');
var Schema = mongoose.Schema;

var UserSchema = new Schema({
  email: {type: String, index: true},
  country: {type: String, index: true},
  signup_date: { type : Date, default: Date.now, index: true },
});

mongoose.model('User', UserSchema);

然后搜索:

var User = require('mongoose').model('User');

const mySearch = async () => {
  const time = new Date("March 1 2023").toISOString(); 
  // properly format timestamp for mongodb query
  // "March 1 2023" is an example (or use something like req.body.myTimeVar)

  var myUser = await User.find({country: req.body.country,
    signup_date: {
      $gte: time // $gte: greater than or equal to (also see $lte, $gt, $lt, etc)
    }
  });
}

相关问题