Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
mongodb中的javascript getTime()_Javascript_Mongodb - Fatal编程技术网

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}
});