跳到主要内容

字段类型

CloudBase 文档型数据库支持多种数据类型,满足不同场景的数据存储需求。

基础数据类型

数据类型说明示例适用场景
String字符串类型,用于存储文本数据"Hello World"用户名、描述信息、文本内容
Number数字类型,包括整数和浮点数1233.14年龄、价格、计数器
Object对象类型,用于存储键值对结构的数据{ "name": "张三", "age": 25 }用户信息、配置数据
Array数组类型,用于存储有序的数据集合[1, 2, 3]["a", "b", "c"]标签列表、商品分类
Bool布尔类型,表示真或假truefalse开关状态、权限标识
Date时间类型,精确到毫秒new Date()创建时间、更新时间
GeoPoint地理位置点,用经纬度标记位置{ "latitude": 39.9, "longitude": 116.4 }位置信息、地图标记
Null空值类型,表示没有值null可选字段的默认值

特殊数据类型详解

Date 时间类型

Date 类型用于存储时间信息,精确到毫秒级别。支持客户端时间和服务端时间两种创建方式。

客户端时间

使用 JavaScript 内置 Date 对象创建:

// 创建当前时间
const now = new Date();

// 创建指定时间
const specificDate = new Date('2023-12-25 10:30:00');

// 插入数据
db.collection('articles').add({
data: {
title: '文章标题',
createTime: now,
publishTime: specificDate
}
});

服务端时间

使用 serverDate 对象创建服务端当前时间标记:

// 使用服务端时间
db.collection('articles').add({
data: {
title: '文章标题',
createTime: db.serverDate()
}
});

GeoPoint 地理位置类型

GeoPoint 类型用于表示地理位置点,通过经纬度坐标唯一标记一个地理位置。

各SDK实现有所差异,下方分别展示对应示例

创建地理位置

小程序 GeoPoint 相关文档

const db = wx.cloud.database();

// 创建地理位置点
const location = db.Geo.Point(116.4, 39.9); // 经度, 纬度

// 插入带有地理位置的数据
db.collection('stores').add({
data: {
name: '北京店',
location: location,
address: '北京市朝阳区'
}
}).then(res => {
console.log('添加成功', res);
}).catch(err => {
console.error('添加失败', err);
});

地理位置查询

小程序GEO查询文档

const _ = db.command

db.collection('restaurants').where({
location: _.geoNear({
geometry: db.Geo.Point(116.4, 39.9),
minDistance: 1000,
maxDistance: 5000,
})
}).get()

⚠️ 注意:对地理位置字段进行查询时,请建立地理位置索引,否则查询将失败