如何通过数字字段查询feathers.js中的NeDB服务?

问题描述

我在feathers.js 应用程序中使用NeDB product 服务。 product.db 文件包含数字字段 categoryId。当我这样查询时:

http://localhost:3030/product?categoryId=17

没有结果。当我尝试按文本字段查询时:

http://localhost:3030/product?imageName=image.png

这个查询工作正常。

我在数据库文件中将 categoryId 字段类型从数字更改为字符串。现在通过 categoryId 查询工作正常。这种奇怪行为的原因是什么?

UPD:

我找到了原因。在羽毛应用程序中的钩子:

function beforeFind(ctx) {
  console.log(ctx.arguments[0].query)
}

代码显示查询中的 categoryId 是字符串。它解决

function beforeFind(ctx) {
  const qr = ctx.arguments[0].query
  if (qr.price) {
    qr.price = +qr.price
  }
}

现在按价格过滤就可以了。但是我认为这个解决方案不是很好。有没有更优雅的方法解决这个问题?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)