mongoDB中单个字段的字符串或整数查询
Posted
技术标签:
【中文标题】mongoDB中单个字段的字符串或整数查询【英文标题】:String or integer query in mongoDB for a single field 【发布时间】:2015-12-14 06:17:19 【问题描述】:在 MongoDB 中,有一个名为 vehId 的字段。它包含字符串中的值以及整数中的值。喜欢
"vehId" : "12"
or
"vehId" : 12
or
"vehId" : ""
如果我将 vehId 查询为整数,则它仅返回具有整数值的 vehId,而对于字符串,它仅返回字符串。但我需要对 string 和 integer 进行一次查询。喜欢
collection.find("vehId" : <value> )
我需要一个返回所有值的查询。如果我将 vehId 作为整数传递,它还会返回字符串中具有 vehId 的值,反之亦然
【问题讨论】:
所以只需将整数和字符串值作为参数提供给$in
。
@BlakesSeven 我只得到一个值,它可能是字符串或整数
Blakes 要求运行类似 collection.find("vehId" : $in: [12, "12") 的查询
反正我知道怎么做。谢谢@BlakesSeven
【参考方案1】:
因此,如果您遇到上述情况,您可以通过以下方式轻松获得结果:
collection.find("vehId" : $in: [intval($vehId), $vehId)
【讨论】:
我强烈不推荐这种方法,除非你确定$vehId
总是只包含数值。例如,如果$vehId
= '123abc',那么您的脚本将匹配 123 AND '123abc'!
在 db 中 $vehId 始终是整数并且它会自动递增。【参考方案2】:
collection.find( $or: ["vehId":value, "vehId": intval(value))
【讨论】:
以上是关于mongoDB中单个字段的字符串或整数查询的主要内容,如果未能解决你的问题,请参考以下文章