mongoDB中单个字段的字符串或整数查询

Ash*_*osh 5 mongodb nosql

在MongoDB中,有一个名为vehId的字段.它包含字符串中的值以及整数.喜欢

{
"vehId" : "12"
}

or

{
"vehId" : 12
}

or

{
"vehId" : ""
}
Run Code Online (Sandbox Code Playgroud)

如果我作为整数查询为vehId,则仅返回具有Integer值的vehId,因为它只返回字符串.但是我需要对字符串和整数进行单一查询.喜欢

collection.find({"vehId" : <value> })
Run Code Online (Sandbox Code Playgroud)

我需要一个返回所有值的查询.如果我将vehId作为整数传递,它也会返回具有字符串中的vehId的值,反之亦然

Ash*_*osh 5

因此,如果您遇到上述情况,您可以通过以下方式轻松获得结果:

collection.find({"vehId" : { $in: [intval($vehId), $vehId}})
Run Code Online (Sandbox Code Playgroud)

  • 我强烈不推荐这种方法,除非您确定 `$vehId` 始终只包含数字值。例如,如果 `$vehId` = '123abc',那么您的脚本将匹配 123 AND '123abc' ! (2认同)