javascript getTime() in mongodb

javascript getTime() in mongodb

本文关键字:in mongodb getTime javascript      更新时间:2023-09-26

我正在使用 getTime() 函数将出生日期存储在 mongodb 中javascript。现在,我想查询我的数据库,查找所有年龄在 20 到 30 岁之间的人。如何在服务器上执行此操作?

{ birth_date : { $gt : 20years, $lt : 30years } }

在 DB 中,date看起来像 - 716763600000

与其使用 getTime(),不如直接使用 Date 对象。这样,您的数据将通过网络发送并存储标记为BSON日期时间类型而不是整数类型。您可以像这样插入和检索当前日期:

> db.foo.insert({time: new Date});
> db.foo.findOne();
{
    "_id" : ObjectId("523b182d42214dac3729419f"),
    "time" : ISODate("2013-09-19T15:28:45.175Z")
}

以下是查询 20 到 30 岁之间的每个人的方法:

var t1 = new Date();
var t2 = new Date();
t1.setYear(t1.getYear() - 30);
t2.setYear(t2.getYear() - 20);
db.people.find({
  birth_date : {$gt: t1, $lt: t2}
});

自 1970/01/01 以来,您已将出生日期存储为毫秒。然后,您必须查询与那时不同的查询:

db.people.find({
    birth_date: {
        $gt: new Date().getTime() - new Date(2000, 0, 1).getTime(),
        $lt: new Date().getTime() - new Date(1990, 0, 1).getTime()
    }
})

$gt 命令中,您可以查询所有生日大于 now before 30 years
$lt 命令中,您可以查询所有,生日低于 now before 20 years