我相信必须先问过这个问题,但找不到任何与此主题相关的参考。
我正在使用本机JavaScript驱动程序来查询MongoDB集合,使用URL查询字符串上提供的数据作为输入,因此它不携带类型信息,而被简单地视为String
。
问题是,我要与此输入匹配的数据可能是集合中的不同类型,例如Number
,但我无法提前预测。据我所知,Mongo默认比较运算符使用严格的语义进行操作,因此此查询:
collection.find({ fieldName: value })
等效于此JavaScript代码:
fieldName === value
而我想在这种情况下应用非严格语义(==
,因此"123"
的值将与"123"
和123
都匹配。
有人知道这是否可能而不会影响查询性能吗?
问题是,我要与此输入匹配的数据可以是集合中的其他类型,例如Number,但是我无法提前预测。
问题是,我要与此输入匹配的数据可能是集合中的其他类型,例如Number
与OP不同,我可以确定集合中的哪些字段将是数字字段。但是我遇到了OP的相同问题:req.query对象中的字段都是字符串。因此,我使用以下要共享的代码段从中得出数字: