我在 mongoDB(sails-mongo 适配器)上使用 Waterline 的 Node.js Sails 应用程序 0.10-rc4,并且我有一个运行良好的 model.where 标准条件:
or:
[
{
start:
{
'>': new Date(parseInt(req.param('start'))*1000),
'<': new Date(parseInt(req.param('end'))*1000)
},
end:
{
'>': new Date(parseInt(req.param('start'))*1000),
'<': new Date(parseInt(req.param('end'))*1000)
}
}
]
...但我想在它上面添加一个例外,在算法中是这样的:
(
(startq > startparam AND startq < endparam)
OR
(endq > startparam AND endq < endparam)
)
OR
(
(startq < startparam AND endq > endparam)
)
...但似乎我们不能使用多个 OR ?
or:
[
{
start:
{
'>': new Date(parseInt(req.param('start'))*1000),
'<': new Date(parseInt(req.param('end'))*1000)
},
end:
{
'>': new Date(parseInt(req.param('start'))*1000),
'<': new Date(parseInt(req.param('end'))*1000)
},
{
start:
{
'<': new Date(parseInt(req.param('start'))*1000)
},
end:
{
'>': new Date(parseInt(req.param('end'))*1000)
}
}
}
]
我尝试了很多方法(不带括号)...
or:
[
{
{
or:
[
{
start:
{
'>': new Date(parseInt(req.param('start'))*1000),
'<': new Date(parseInt(req.param('end'))*1000)
},
end:
{
'>': new Date(parseInt(req.param('start'))*1000),
'<': new Date(parseInt(req.param('end'))*1000)
}
}
]
},
{
start:
{
'<': new Date(parseInt(req.param('start'))*1000)
},
end:
{
'>': new Date(parseInt(req.param('end'))*1000)
}
}
}
]
......没有人工作,大部分时间我得到:
SyntaxError: Unexpected token {
文档没有关于该语法的示例,有办法吗?
编辑:
感谢 Scott,这是很好的语法:
or:
[
{
start:
{
'>': new Date(parseInt(req.param('start'))*1000),
'<': new Date(parseInt(req.param('end'))*1000)
}
},
{
end:
{
'>': new Date(parseInt(req.param('start'))*1000),
'<': new Date(parseInt(req.param('end'))*1000)
}
},
{
start:
{
'<': new Date(parseInt(req.param('start'))*1000)
},
end:
{
'>': new Date(parseInt(req.param('end'))*1000)
}
}
]