mongodb中的javascript getTime()
我使用mongodb中的javascript getTime(),javascript,mongodb,Javascript,Mongodb,我使用javascriptgetTime()函数在mongodb中存储出生日期。现在我想查询我的数据库中所有20到30岁的人。如何在服务器上执行此操作 { birth_date : { $gt : 20years, $lt : 30years } } 在db中,日期看起来像-716763600000自1970/01/01以来,您已将出生日期存储为毫秒。然后,您必须使用与之不同的查询: db.people.find({ birth_date: { $gt: new Dat
javascript
getTime()函数在mongodb中存储出生日期。现在我想查询我的数据库中所有20到30岁的人。如何在服务器上执行此操作
{ birth_date : { $gt : 20years, $lt : 30years } }
在db中,
日期
看起来像-716763600000
自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
命令中,您可以查询所有生日大于现在30岁以前的人
在
$lt
命令中,您可以查询所有生日低于现在20岁以前的人
自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
命令中,您可以查询所有生日大于现在30岁以前的人
在
$lt
命令中,您可以查询所有人,如果生日低于现在20年以前的生日
而不是使用getTime(),那么直接使用日期对象可能会更好。这样,您的数据将通过网络发送,并以BSON datetime类型而不是整数类型标记存储。您可以按如下方式插入和检索当前日期:
> 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}
});
与其使用getTime(),不如直接使用日期对象。这样,您的数据将通过网络发送,并以BSON datetime类型而不是整数类型标记存储。您可以按如下方式插入和检索当前日期:
> 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}
});