我在mongo db中有以下示例模型数据:
watch
我想查询 timelineStart {
"_id" : ObjectId("5982cd5f2801e5d848g368hw"),
"startDate": NumberLong("1501747729035"),
"table": {
"_id" : ObjectId("3fhyi9801e5d848g368hw"),
"timeWindow": 20
}
}
和state is equal to NEW
低于当前日期的所有时间线启动。
我准备了以下查询:
startDate - number of hours in timeWindow
哪个工作正常,但我想避免在where子句内部进行变量初始化。如果我在Azure Cosmos上运行此查询它不起作用,因为db.timelineStart.find({$and: [
{ "status": { $eq: "NEW" }},
{ $where: "var timelineStart = this.startDate;timelineStart.setHours(timelineStart.getHours() - this.table.timeWindow); timelineStart <= new ISODate()" }
]
});
,所以似乎Cosmos的语法是错误的。
您知道如何重写此查询以避免其中的变量?