等价于MongoDB查询中的JavaScript非严格比较

问题描述 投票:2回答:3

我相信必须先问过这个问题,但找不到任何与此主题相关的参考。

我正在使用本机JavaScript驱动程序来查询MongoDB集合,使用URL查询字符串上提供的数据作为输入,因此它不携带类型信息,而被简单地视为String

问题是,我要与此输入匹配的数据可能是集合中的不同类型,例如Number,但我无法提前预测。据我所知,Mongo默认比较运算符使用严格的语义进行操作,因此此查询:

collection.find({ fieldName: value })

等效于此JavaScript代码:

fieldName === value

而我想在这种情况下应用非严格语义(==,因此"123"的值将与"123"123都匹配。

有人知道这是否可能而不会影响查询性能吗?

javascript mongodb comparison equality
3个回答
1
投票

问题是,我要与此输入匹配的数据可以是集合中的其他类型,例如Number,但是我无法提前预测。


0
投票

问题是,我要与此输入匹配的数据可能是集合中的其他类型,例如Number


0
投票

与OP不同,我可以确定集合中的哪些字段将是数字字段。但是我遇到了OP的相同问题:req.query对象中的字段都是字符串。因此,我使用以下要共享的代码段从中得出数字:

© www.soinside.com 2019 - 2024. All rights reserved.