MongoDB Long 类型 shell 查询

场景

1、某数据ID为Long类型,JAVA 定义实体类 @Id Long id
2、查询数据库,此数据存在
3、使用 shell 查询,查不到数据
4、JAVA代码查询Query.query 不受任何影响
MongoDB Long 类型 shell 查询_第1张图片
MongoDB Long 类型 shell 查询_第2张图片

分析

尝试解决(一)

long 在 mongo中为 int64 类型,因此直接传递参数,会丢失精度,所以想到加上引号尝试解决
MongoDB Long 类型 shell 查询_第3张图片

失败原因

加上双引号以后,变成了字符串,和主键数据类型不一致,因此查不到数据

正确语法

使用NumberLong

示例

{_id:NumberLong('19343258235046709')}

MongoDB Long 类型 shell 查询_第4张图片

你可能感兴趣的:(笔记,mongodb,数据库)