我可以使用按位运算符来请求Loopback模型吗?

时间:2014-01-31 16:23:57

标签: node.js mongodb bit-manipulation strongloop loopbackjs

Strongloop Loopback 文档没有说明使用按位过滤器进行对象检索。

Example like in Loopback API documentation

// Just an example of syntax, it does not do bitwise filter
Inventory.find({where: {status: {gt: 4}});

通过与 MongoDB 的直接连接,我可以这样做:

// Select items with 3rd bit on in `status` field
db.inventory.find({status: {$mod: [4, 0]}});

我可以在 Loopback 模型界面后面做同样的事吗?

在MongoDB文档中,他们说 $条件可以做同样的事情,而更昂贵的

db.inventory.find( { $where: "this.qty % 4 == 0" } )

我可以在环回中执行以下操作:

Inventory.find({where: "this.qty % 4 == 0"});

否则会失败?

在我的模型中使用面向位的状态字段的整个想法是否过度?我应该只使用某种包含字符串状态列表的数组字段吗?在数据库存储方面不是太贵了吗?

由于

1 个答案:

答案 0 :(得分:2)

LoopBack使用与MongoDB类似的JSON对象来描述查询。请记住,LoopBack支持多个数据库,如MongoDB,MySQL和Oracle。理想情况下,运营商应得到所有运营商的支持。 LoopBack连接器将其映射到本机查询。

我们不支持所有连接器的按位运算符。但对于MongoDB,我们通过添加$来传递运算符。例如,{mod: [ 4, 0 ])变为$mod: [ 4, 0 ]

open an issue。我们会跟进。