我正在开发一个SailsJS项目,我需要为我的ORM搜索创建一个json对象才能工作,这就是搜索的执行方式
SELECT
p.id,
p.name,
count(m1.*) + count(m2.*) as matches,
count(w.*) as wins
FROM players p
LEFT JOIN matches m1
ON m.p_one_id = p.id
LEFT JOIN matches m2
on m.p_two_id = p.id
LEFT JOIN wins w
ON w.p_id = p.id
GROUP BY p.id, p.name
因此,您可能会看到Find()中的JSON对象是需要创建的,并且里面的值具有重复的键。
答案 0 :(得分:2)
你做不到。你应该尝试使用这样的东西:
Venue.find({
is_published: true,
restaurant_services: {
contains: ['"delivery":"1"','"takeout":"1"']
},
restaurant_specialties: {
contains: [ '"breakfast":"1"' ]
}
}).exec
或者这个:
Venue.find({
is_published: true,
restaurant_services: {
contains: {"delivery":"1","takeout":"1"}
},
restaurant_specialties: {
contains: { "breakfast":"1" }
}
}).exec
答案 1 :(得分:1)
问题是{...} Jason代表地图,因此不能有重复的密钥。虽然重复键严格来说不是语法错误,但它们也无法像浏览器或json库那样按预期工作。如果你不能改变你的json对象的语法,那么你将不得不通过字符串连接而不是普通的Javascript类型方法来生成json。