我现在有个需求是筛选某个时间段的内容,要定义DATE类型字段isodate_time用于检索,但我发现存储后还是字符串类型的,请教大佬有什么方法在添加数据的时候规定字段类型。搜索了相关解答,要设置为db.serverDate(), 可我从前端传来的是data数组, 如何追加这个字段?
云函数处理
exports.main = async(event, context) => {
switch (event.action) {
case 'AddWlog':
{
let data = event.data;
await db.collection('TABLE_WLOG').add({
data: data
})
return {
msg: 'ok'
}
}
}
}
发布页提交的数据
wx.cloud.callFunction({
name: 'wlogfun',
data: {
action: 'AddWlog',
data: {
openid: wx.getStorageSync('openid'),
content: that.data.content,
....
is_delete: 0,
//isodate_time: new Date(Date.now() + 8 * 60 * 60 * 1000),
create_time: timeutil.TimeCode(new Date()),
update_time: timeutil.TimeCode(new Date())
}
},
...
})
最近正好在做类似的东西,你可以在小程序端直接调用,先做云数据库方法初始化 wx.cloud.database()紧接着使用db.serverDate()这个方法。
我给你看一个代码段你应该就明白了,直接使用服务端的时间。查询时可以使用new date("里面是时间的值"),来恢复为date类型的值
db.collection('blog').add({ data:{ ...userInfo, content, //内容 img: fileIds, //图片 createTime: db.serverDate() //服务端的时间 }
云端存储的结果:
希望可以帮到你
let data = event.data,
openid = data.openid;
await db.collection('TABLE_WLOG').add({
data: {
openid: data.openid,
content: data.content,
picture: data.picture,
location: data.location,
likes: 0,
chats: 0,
views: 0,
is_top: data.is_top,
is_locking: data.is_locking,
is_secret: data.is_secret,
is_delete: 0,
isodate_time: db.serverDate(),
create_time: data.create_time,
update_time: data.update_time
}
})
还可以使用时间戳的形式
如要数据库能识别的date对象,可以自己构造:
db.collection("xxx").add({
data: {
time: { $date: Date.now() }
}
})
数据转换其实是发生在 访问云函数的过程中,如果 在云函数中创建 时间对象,就不会有问题,