分隔数组的水线查询"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 序列化的。