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中单个字段的字符串或整数查询的主要内容,如果未能解决你的问题,请参考以下文章

MongoDB:匹配字符串字段中的多个值

mongodb,

李老师 mongoDB中 字符类型的字段 有大小长度限制吗

如何在mongodb查询中获取单个字段?

MongoDB 字符串截取 $substr

mongodb 模型字段在查询字符串和 GraphQL 查询中不可用