我创建了一个架构Machine
:
import mongoose from 'mongoose';
import moment from 'moment';
const Schema = mongoose.Schema;
const MachineSchema = new Schema({
device_name: {
type: String,
unique: true
},
state: String,
count_pings: {
type: Number,
default: 1
},
created_at: {
type : Number,
default: moment().format('x')
},
last_work_time_at: {
type : Number,
default: moment().format('x')
}
});
export default mongoose.model('Machine', MachineSchema);
我使用聚合框架将查询发送到MongoDB:
require('dotenv').config();
import mongoose from 'mongoose';
import Machine from './models/machine';
const fiveMinutesAgo = moment().subtract(process.env.INTERVAL_TIME_IN_MINUTES, 'minutes').format('x');
Machine.aggregate([
{$match: {last_work_time_at: {$lt: fiveMinutesAgo}}},
{$project: {_id: 1, device_name: 1, last_work_time_at: 1}}
])
.then(results => {
console.log(results);
})
我希望获取last_work_time_at
的值小于fiveMinutesAgo
值的所有文档。
我使用版本4.11.7的mongoose。
这里,例如存储在集合中的文档:
{
"_id" : ObjectId("59a6c8a5811e812935f3c6d4"),
"device_name" : "cg0011",
"state" : "unworking",
"last_work_time_at" : 1504102558069.0,
"created_at" : 1504102558069.0,
"count_pings" : 15844,
"__v" : 0
}
我有相同的其他10个文件,并且绝对每个字段last_work_time_at
的值都小于`fiveMinutesAgo的值,但查询的结果是空数组。
我不明白为什么不通过查询得到任何文件。我觉得某个地方有点错误,这就是为什么不搜索它的原因 请帮我。提前谢谢。