Javascript 如何在Feathersjs中按年份查询时间戳字段?
目前,我有一个时间戳字段,其值格式类似于Javascript 如何在Feathersjs中按年份查询时间戳字段?,javascript,feathersjs,feathers-hook,Javascript,Feathersjs,Feathers Hook,目前,我有一个时间戳字段,其值格式类似于1479664146607 我想做的是获取所有时间戳为2017年的数据 我当前的代码无法执行。它获取所有数据,然后使用筛选方法 假设我有2000多张唱片 const records = []; // all records const data = records.filter(r => new Date(r).getYear == '2017'); 当这段代码工作时,它会杀死服务器 我的数据库是nedb,使用feathersjs,我实际上可以通过
1479664146607
我想做的是获取所有时间戳为2017年的数据
我当前的代码无法执行。它获取所有数据,然后使用筛选方法
假设我有2000多张唱片
const records = []; // all records
const data = records.filter(r => new Date(r).getYear == '2017');
当这段代码工作时,它会杀死服务器
我的数据库是nedb,使用feathersjs,我实际上可以通过
app.service('messages').find({
query: {
timestamp: '2017'
}
});
此代码将不起作用,因为它将搜索确切的年份。我正在寻找一种方法,将时间戳字段转换为一年,然后再在数据库中搜索它。好的,所以我所做的就是使用
$gt
和$lt
运算符
假设我们希望获得2018年的所有数据
使用momentjs,我做了如下操作:
const year = '2018';
// Get previous year based on given year
const previousYear = moment(year, 'YYYY').subtract(1, 'year').format('YYYY');
// Get next year based on given year
const nextYear = moment(year, 'YYYY').add(1, 'year').format('YYYY');
// get full ending date of previous year
const endOfPreviousYear = moment(previousYear, 'YYYY').endOf('year').format('x');
// get full starting date of next year
const startOfNextYear = moment(nextYear, 'YYYY').startOf('year').format('x');
// get data where year is greater than `endOfPreviousYear` and less than `startOfNextYear`
const yearQuery = {
$gt: +endOfPreviousYear,
$lt: +startOfNextYear
}
app.service('messages').find({
query: {
timestamp: yearQuery
}
});