Sails.js WaterlineORM 如何在查询中使用 $and/$or 运算符



我有一个数据存储在数据库中。以下是来自 DB 的一个文档的示例:

{
    "year": 2012,
    "indicator": 0
}
其他

文档包含其他年份 - 2013 年、2014 年等和随机"指标"。现在我想选择所有在 2012 到 2014 年范围内数据和一些指标的文档。我正在使用蓝图帆.js用于传递搜索查询的 api。

我希望有一种方法可以传递两个查询并使 Waterline 选择与一个(或两个)查询匹配的文档。

所以这是我尝试过的(现在只有几年):

1.

 {
        "year": {">=": 2012}
        "year": {"<=": 2014}
 }

在这里,我只得到了以 2012 年为一年的文档。

阿拉伯数字。

 {
        "year": {">=": 2012, "<=": 2014}
 }

与 1 相同。

3.

 "or": [{
    "year": {">=": 2012}
  }, {
    "year": {"<=": 2014}
  }]

与 1 相同。

4.

 "and": [{
    "year": {">=": 2012}
  }, {
    "year": {"<=": 2014}
  }]

不返回任何文档。

问题是:如何在水线ORM的某个范围内获取文档?

我有同样的问题....我希望有这样的解决方案...但我最终使用在哪里。

stuff.find({year:{"<":2014}}).where({year:{">":2012}})

我有同样的问题,我想找到解决方案。

在查询

中的工作方式类似于mysql"在查询中"。数组中的每个元素都被视为"或"。

Model.find({
  name : ['Walter', 'Skyler']
});

检查这个!水线查询

随着时间的流逝,这个问题没有得到回答,我会自己回答。

此解决方案适用于最新版本的 sails (1.2.3 ) 和 MySQL 数据库:

await Record.find({
  where: {
    and: [
      {year: {'>': 2005}},
      {year: {'<': 2008}}
    ]
  },
  limit: 3
})

相关内容

  • 没有找到相关文章

最新更新