分隔数组的水线查询"OR"
Waterline query of arrays separated "OR"
我正在尝试获取 sails 后端 REST 调用,该调用检索 "country" 列或 "subCountry" 列与我拥有的数组匹配的项目。我试过:
{
skip: 0,
where: {
or: [
{country: ['Argentina', 'Brasil']},
{subCountry: ['Argentina', 'Brasil']}
]
}
}
但是 return 0 条记录。
看起来问题是我在每个 "or" 项上都有一个隐含的 "in"。
我正在查询 mongo 数据库。
这不是 "pretty" 的想法,但由于 $in
is basically an $or
使用较短的符号形式,您仍然应该能够使用相同的长符号形式:
{
"where": {
"or": [
{ "country": "Argentina" },
{ "country": "Brasil" },
{ "subCountry": "Argentina" },
{ "subCountry": "Brasil" }
]
}
}
或者您也可以接受使用 "native" 查询表单:
Model.native(function(err,collection) {
collection.find({
"$or": [
{ "country": { "$in": [ "Argentina", "Brasil" ] } },
{ "subCountry": { "$in": [ "Argentina", "Brasil" ] } },
]
}).toArray(function(err,docs) {
});
});
由于该查询表单本身没有任何问题,所以它是如何通过 waterline 为 MongoDB 序列化的。
我正在尝试获取 sails 后端 REST 调用,该调用检索 "country" 列或 "subCountry" 列与我拥有的数组匹配的项目。我试过:
{
skip: 0,
where: {
or: [
{country: ['Argentina', 'Brasil']},
{subCountry: ['Argentina', 'Brasil']}
]
}
}
但是 return 0 条记录。
看起来问题是我在每个 "or" 项上都有一个隐含的 "in"。 我正在查询 mongo 数据库。
这不是 "pretty" 的想法,但由于 $in
is basically an $or
使用较短的符号形式,您仍然应该能够使用相同的长符号形式:
{
"where": {
"or": [
{ "country": "Argentina" },
{ "country": "Brasil" },
{ "subCountry": "Argentina" },
{ "subCountry": "Brasil" }
]
}
}
或者您也可以接受使用 "native" 查询表单:
Model.native(function(err,collection) {
collection.find({
"$or": [
{ "country": { "$in": [ "Argentina", "Brasil" ] } },
{ "subCountry": { "$in": [ "Argentina", "Brasil" ] } },
]
}).toArray(function(err,docs) {
});
});
由于该查询表单本身没有任何问题,所以它是如何通过 waterline 为 MongoDB 序列化的。