# 数据类型

云开发数据库提供以下几种数据类型:

  • String:字符串
  • Number:数字
  • Object:对象
  • Array:数组
  • Bool:布尔值
  • Date:时间
  • Geo:多种地理位置类型,详见下
  • Null

下面对几个需要额外说明的字段做下补充说明。

# Date

Date 类型用于表示时间,精确到毫秒,在小程序端可用 JavaScript 内置 Date 对象创建。需要特别注意的是,在小程序端创建的时间是客户端时间,不是服务端时间,这意味着在小程序端的时间与服务端时间不一定吻合,如果需要使用服务端时间,应该用 API 中提供的 serverDate 对象来创建一个服务端当前时间的标记,当使用了 serverDate 对象的请求抵达服务端处理时,该字段会被转换成服务端当前的时间,更棒的是,我们在构造 serverDate 对象时还可通过传入一个有 offset 字段的对象来标记一个与当前服务端时间偏移 offset 毫秒的时间,这样我们就可以达到比如如下效果:指定一个字段为服务端时间往后一个小时。

那么当我们需要使用客户端时间时,存放 Date 对象和存放毫秒数是否是一样的效果呢?不是的,我们的数据库有针对日期类型的优化,建议大家使用时都用 DateserverDate 构造时间对象。

# 地理位置

db.Geo.Point 外,需小程序基础库版本 2.6.3 或以上。控制台需开发者工具版本 1.02.1903251 或以上。

云开发数据库提供了多种地理位置数据类型的增删查改支持,支持的地理位置数据类型有以下几种(API 文档):

字段 说明 最低基础库版本
Point 2.2.3
LineString 线段 2.6.3
Polygon 多边形 2.6.3
MultiPoint 点集合 2.6.3
MultiLineString 线段集合 2.6.3
MultiPolygon 多边形集合 2.6.3

要使用地理位置查询功能时,必须建立地理位置索引,建议用于存储地理位置数据的字段均建立地理位置索引。地理位置索引可在云控制台建立索引的入口中选择地理位置索引(2dsphere)。

具体的使用方法可参见 API 文档

# Null

null 相当于一个占位符,表示一个字段存在但是值为空。