1、Long.ValueOf(“String”)返回Long包装类型数据 包装类型:Byte,Integer,Short,Long,Boolean,Character,Float,Double等。...2、Long.parseLong(“String”)返回long基本数据类型 基本数据类型:byte,int,short,long,boolean,char,float,double等。...原因是Long类型的最大值位Long.MAX_VALUE = 9223372036854775807,大于错,最小值位Long.MIN_VALUE = -9223372036854775808,小于这个值也会报错
使用雪花算法随机生成的id,使用Long类型存储到redis的时候,反序列化为Object类型,对于数值类型,取出后统一转为Object,导致泛型类型丢失,数值自动转为了Integer类型,range
所以, 我们把时间转成最原始的Long型. Gson默认的是不支持的, 需要手动处理一下....日期转Long public class DateSerializer implements JsonSerializer { public JsonElement serialize...JsonSerializationContext context) { return new JsonPrimitive(src.getTime()); } } Long...转日期 public class DateDeserializer implements JsonDeserializer { public Date deserialize...builder.registerTypeAdapter(java.util.Date.class, new DateSerializer()).setDateFormat(DateFormat.LONG
在基于XML的配置中使用的用户名和密码凭证必须URL编码时这些包含保留的字符,例如:,%,@,或,。...下面概述了_id在使用MappingMongoConverter(默认为MongoTemplate)时对映射到文档字段的属性进行的类型转换(如果有)。...ObjectIdConverterObjectId 使用 Spring将在 Java 类中id声明的属性或字段BigInteger转换为 并存储为。...查询和更新时,MongoTemplate使用与上述规则对应的转换器来保存文档,以便查询中使用的字段名称和类型可以匹配域类中的内容。...在后一种情况下,该属性中保存的值必须是在检索对象时正确读入。因此,我们需要一种机制来将类型信息与实际文档一起存储。
2562,3639,2063,3448,2128,2597,2893,2333,3330,2642,2541,3002,3561,3649,2384,2504,3397,2843,2341,2249" 可以看到,在Redis...(query, Movement.class); } 1.3、根据id查询动态 根据id查询动态:当手机端查看评论内容时(需要根据动态id,查询动态详情),后续再去查询评论列表 1.3.1、接口文档 API...likeCount" : 0, "_class" : "com.tanhua.domain.mongo.Comment" } 数据存储位置:redis,mongodb mongodb中的数据 在动态详情...//redis实现,使用Mongodb实现 private Long pid; //Long类型,用于推荐系统的模型(自动增长) private Long created; /...id; private ObjectId publishId; //发布id private Integer commentType; //评论类型,1-点赞,2-评论,3-
查询 List list = mongoTemplate.find(query, RecommendUser.class); long count = mongoTemplate.count...id; //主键id private Long pid; //Long类型,用于推荐系统的模型(自动增长) private Long created; //发布时间 private...serialVersionUID = 6003135946820874230L; private ObjectId id; private Long userId; //用户id...mongoTemplate; @Async public void saveTimeLine(Long userId, ObjectId movementId) {...中国北京市昌平区建材城西路16号"); movementApi.publish(movement); } } 3.3、查询个人动态 查询好友动态其实就是查询自己的时间线表,好友在发动态时已经将动态信息写入到了自己的时间线表中
= mongoTemplate; } /** * 分页查询,直接返回集合类型的结果...* @param mapper 映射器,你从db查出来的list的元素类型是entityClass, 如果你想要转换成另一个对象,比如去掉敏感字段等,可以使用mapper来决定如何转换....* @param collection定义的class类型. * @param 最终返回时,展现给页面时的一条记录的类型。...如何使用 必须结合spring-boot-starter-data-mongodb来使用....(mongoTemplate); } } 然后就可以使用MongoPageHelper来注入了。
如果id在 Java 类中将命名字段声明为 String 或 BigInteger,则将尽可能将其转换为 ObjectId 并存储为 ObjectId。ObjectId 作为字段类型也是有效的。...如果您id在应用程序中指定了一个值,那么 MongoDB 驱动程序会检测到 ObjectId 的转换。如果指定的id值无法转换为 ObjectId,则该值将按原样存储在文档的 _id 字段中。...如果一个字段@MongoId在 Java 类中被注释,它将被转换为并存储为使用它的实际类型。除非@MongoId声明所需的字段类型,否则不会发生进一步的转换。...查询和更新时MongoTemplate将使用转换器来处理与上述保存文档规则相对应的Query和Update对象的转换,因此查询中使用的字段名称和类型将能够匹配域类中的内容。...在应用程序启动时以及在应用程序运行时第一次访问实体类型时,会为初始实体集自动创建索引。
本文介绍使用Spring Data MongoDB来访问mongodb数据库的几种方法: 使用Query和Criteria类 JPA自动生成的查询方法 使用@Query 注解基于JSON查询 在开始前,...2.1 is查询 在以下示例中 - 我们正在寻找名为Eric的用户。...3.生成的查询方法(Generated Query Methods) 生成查询方法是JPA的一个特性,在Spring Data Mongodb里也可以使用。...4.1 FindBy 让我们先从简单的,看看我们是如何将是一个通过查找类型的方法第一: @Query("{ 'name' : ?...结论 在本文中,我们探讨了使用Spring Data MongoDB进行查询的常用方法。 本文示例可以从 spring-data-mongodb这里下载。
BSON支持在一个文档中最多存储16MB的二进制数据。如果存储的是小于16M的文件,可以直接将文件转换为二进制数据,以文档形式存入集合。...当把一个文件存储到GridFS时,如果文件大于chunksize (每个chunk块大小为256KB),会先将文件按照chunk的大小分割成多个chunk块,最终将chunk块的信息存储在fs.chunks...读文件时,先根据查询条件在files集合中找到对应的文档,同时得到“_id”字段,再根据“_id”在chunks集合中查询所有“files_id”等于“_id”的文档。...2.2、GridFS使用 2.2.1、使用shell命令 mongoDB提供mingofiles工具,可以使用命令行来操作GridFS。...在文件的操作过程中,可以通过可视化工具或shell来查看存储在MongoDB中的文件: 可以看到,在fileModel集合中存储了我们上传的文件,文件的内容是以二进制的形式存储 ?
文档中的值不仅可以是在双引号里面的字符串,还可以是其他几种数据类型(甚至可以是整个嵌入的文档)。 MongoDB 区分类型和大小写。 MongoDB 的文档不能有重复的键。 文档的键是字符串。...除了少数例外情况,键可以使用任意 UTF-8 字符。 文档键命名规范: 键不能含有\0 (空字符)。这个字符用来表示键的结尾。 .和$有特别的意义,只有在特定环境下才能使用。...存储数据常用的数据类型。在 MongoDB 中,UTF-8 编码的字符串才是合法的。 Integer 整型数值。用于存储数值。根据你所采用的服务器,可分为 32 位或 64 位。...Code 代码类型。用于在文档中存储 JavaScript 代码。 Regular expression 正则表达式类型。用于存储正则表达式。...PID:为了确保在同一个机器上并发的多个进程产生的 ObjectId 是唯一的,所以加上进程标识符(PID) 计数器: 前 9 个字节保证了同一秒不同机器不同进程产生的 ObjectId 是唯一的。
接下来可以操作数据库了,接着上次,在测试类里写代码 @Autowired private MongoTemplate mongoTemplate; /** * 初始化文章信息 * @author yinjihuan...": "MongoTemplate的基本使用", "url": "http://cxytiandi.com/blog/detail/0", "author": "yinjihuan",...("57c43caed4c63d7e39b5dc49"), "title": "MongoTemplate的基本使用", "url": "http://cxytiandi.com/blog...("57c43caed4c63d7e39b5dc49"), "title": "MongoTemplate的基本使用", "url": "http://cxytiandi.com/blog...query = Query.query(Criteria.where("author").is("yinjihuan")); long count = mongoTemplate.count(query
如果已经喜欢或不喜欢的用户在列表中不再显示。...serialVersionUID = 6739966698394686523L; private ObjectId id; @Indexed private Long userId...** * 查询探花列表,查询时需要排除喜欢和不喜欢的用户 */ List queryCardsList(Long userId, int count...2d : 使用2d index 能够将数据作为二维平面上的点存储起来,在MongoDB 2.4以前使用2。...MongoDB内部支持多种GeoJson对象类型: Point 最基础的坐标点,指定纬度和经度坐标,首先列出经度,然后列出 纬度: 有效的经度值介于-180和之间180,两者都包括在内。
lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import org.bson.types.ObjectId...serialVersionUID = 4508868382007529970L; @Id private ObjectId id; @Indexed private...所以需要我们使用vo收发数据 public static final UserLocationVo format(UserLocation userLocation) { UserLocationVo...modifiedCount = mongoTemplate.upsert(query, update, "User_Location").getModifiedCount();...设置地理位置中⼼点 GeoJsonPoint geoJsonPoint = new GeoJsonPoint(longitude, latitude); // 转换为
包含: 设置陌生人问题:当平台其他用户想进行在线交流时需要回答陌生人问题。...具体特点总结如下: 面向集合存储,易于存储对象类型的数据 模式自由 支持动态查询 支持完全索引,包含内部对象 支持复制和故障恢复 使用高效的二进制数据存储,包括大型对象(...-8字符串都可以表示为字符串类型的数据,{“x”:“呵呵”} 日期:日期被存储为自新纪元依赖经过的毫秒数,不存储时区,{“x”:new Date()} 正则表达式:查询时,使用正则表达式作为限定条件...查询时返回文档中所有键值, 只需省略该参数即可(默认省略)。...mongoTemplate; //查询今日佳人 public RecommendUser queryWithMaxScore(Long toUserId) { //
第一点我就会想到的是没有自增ID,mongo里面是ObjectId。今天我们就自己来实现自增的ID。 像mysql这种数据库是内部实现了自增ID,今天我们要自己实现一个,不知道大家有没有具体的思路。...public class SequenceId { @Id private String id; @Field("seq_id") private long...seqId; @Field("coll_name") private String collName; } 接下来定义我们测试的实体类,注意自增ID的类型不要定义成Long...这种包装类,mongotemplate的源码里面对主键ID的类型有限制。...@Documentpublic class Student { @GeneratedValue @Id private long id; private
具体特点总结如下: 面向集合存储,易于存储对象类型的数据 模式自由 支持动态查询 支持完全索引,包含内部对象 支持复制和故障恢复 使用高效的二进制数据存储,包括大型对象(...-8字符串都可以表示为字符串类型的数据,{“x”:“呵呵”} 日期:日期被存储为自新纪元依赖经过的毫秒数,不存储时区,{“x”:new Date()} 正则表达式:查询时,使用正则表达式作为限定条件...查询时返回文档中所有键值, 只需省略该参数即可(默认省略)。...这种扫描全集合的查询效率是非常低的,特别在处理大量的数据时,查询可以要花费几十秒甚至几分钟,这对网站的性能是非常致命的。...Criteria.where("age").lt(30); //1、查询总数 Query queryCount = new Query(criteria); long
mongoTemplate; 在使用相应的方法执行相应的操作 this.mongoTemplate.updateFirst(query,update,Comment.class); 关于MongoDB...(“xxx”) 其中:xxx 代表MongoDB的对应集合的字段名 注意 :实体类名,在插入对象的时候,不指定文档名,就会默认以实体类名为文档名,与@Document 指定的集合名无关 实体类示例:...lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import org.bson.types.ObjectId...serialVersionUID = 2811682148052386573L; @Id @ApiModelProperty("MongoDB记录id") private ObjectId...(query, update, "Visitor"); // 更新为数据 如果数据不存在,就插入,有就修改(不建议使用!
使用起来也非常方便,可直接将MongoTemplate作为类中的属性来使用。...如果Id存在,则将JSON Document转换为Object,否则返回null(表示没有对象)。...count查询记录数: long count = mongoTemplate.count(new Query().with(new Sort( Sort.Direction.ASC, "username...目前支持支持3种类型的Cursor:NonTailable、Tailable、TailableAwait。...MongoTemplate操作MongoDB一些基本的语句,使用过程中还发现需要注意的一些问题: mongodb返回数据过大,查询报错,一次性查出N条数据并进行 sort 排序,然后在使用Java代码查询时候
领取专属 10元无门槛券
手把手带您无忧上云