node.js - 如何使用 retrhinkdb 获取 json 数据
问题描述
(我不是很好的英语。)我使用一个组来包含日期。我想连续获取信息。我需要做什么
.group(r.row('time_create').dayOfWeek())
json导出
[
{
group: 1,
reduction: [
{
detail: "no",
id: "37751c10-97ea-4a3a-b2c9-3e8b39383b79",
order_id: "15",
status: "Not_Delivery",
time_create: "2018-09-23T15:25:13.141Z"
}
]
}
]
我想将数据 json 更改为
{
"date":
{
"Sun": [
{
detail: "no",
order_id: "15",
status: "Not_Delivery",
time_create: "2018-09-28 15:25:13"
}
]
}
}
我是否必须按照我的意愿提供信息。
解决方案
看起来您尝试过但没有设法转换上一个问题的数据。;)
这是一个命题,这不是唯一的方法。
首先,您似乎想删除该id
字段。你可以在你的 ReQL 中使用without
:
.group(r.row('time_create').dayOfWeek()).without('id')
(您可以without('id')
之前申请group
,它应该工作相同,请参阅此了解更多详细信息。)
然后,将结果数组(我们称之为queryResult
)转换为一个对象(我们称之为output
):
// prepare the skeleton of the output
let output = {
date: {}
};
// walk the result, filling the output in the process
queryResult.forEach((groupData) => {
let key = groupData.group;
if (!output[key]) {
output[key] = [];
}
output.date[key].push(...groupData.reduction);
})
现在你几乎有了你想要的结构output
,唯一的问题是日期键仍然是数字而不是短的日期名称。在我看来,这应该由前端处理,因为您可能希望为前端实现不同的语言。但无论如何,这个想法总是一样的:有一个翻译表,将 Rethink 的日期数字与人类可读的日期名称对应起来:
const translationTable = {
1: 'Mon',
2: 'Tue',
// ...
7: 'Sun'
};
现在,如果您在前端执行此操作,则只需在需要显示时动态替换数据的键(或从日期名称中检索键,具体取决于您显示内容的方式)。否则,如果您选择后端实现(同样,这显然不是最佳解决方案),您可以在上面的代码中更改一行(假设您translationTable
已经声明):
let key = groupData.group;
// becomes
let key = translationTable[groupData.group];
有不明白的可以在评论中提问!
推荐阅读
- angularjs - Angular 材料在 Chrome 69 更新中损坏
- postgresql - Ms Access、ADODB、记录集、设置主键
- python - 使用 Python xlsxwriter 在工作簿中运行 VBA 宏
- php - 将数据从 json 转换为数组
- cpu - 与 cortexa15 CPU(s) 相比,cortexa7 CPU(s) 执行循环的时间太长
- python - 保存值的Django模型方法
- rust - 为什么可以同时为 `T: Display` 和 `str` 实现 trait?
- skiasharp - SKiaSharp SKGLView 无法在 iOS 上呈现:无法绑定 EAGLDrawabl
- java - Java 在对象中存储不同的机器数据
- simplewebrtc - webRTC 网络视频通话