【发布时间】:2014-03-19 17:32:36
【问题描述】:
我在 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)
}
}
}
]
我尝试了很多方法(带of不带括号)...
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)
}
}
]
【问题讨论】:
标签: node.js criteria sails.js waterline