javascript - Mongoose Schema,存储一个可能有也可能没有属性的对象
问题描述
我正在查询 API 以获取电视剧集的结果并将它们保存到我的 mongodb 集合中。代码如下:
let episode = JSON.parse(response);
for(let j=0;j<episode.length;j++){
let newEpisode = {
title: episode[j].name,
number: episode[j].number,
season: episode[j].season,
date: episode[j].airdate,
duration: episode[j].runtime,
poster: episode[j].image.medium,
description: episode[j].summary
}
show.episodes.unshift(newEpisode);
}
show.save()
问题在于海报变量。API 要么返回一个包含两个字符串的对象:
poster:
medium: 'url-to-image'
original: 'url-to-image'
或者它返回值为 null 的海报。
有没有办法将海报保存在集合中,以便如果它们存在则保存两个字符串,如果不存在则保存 null?它不会让我将它转换为数组,如果我尝试保存上面代码中的属性之一,我会收到错误“无法读取 null 的属性 'medium'”。
解决方案
在您的对象 Schema / Mongoose 模型中,将您的海报定义为一个数组并在您的帖子中突出显示的代码部分中执行相同的操作:
poster: [
episode[j].medium,
episode[j].original
]
也许尝试从中删除“图像” poster: episode[j].image.medium
?
推荐阅读
- javascript - 复制并清空数组到特定大小
- javascript - 为什么我在 React Native 中的这个布尔值上有两个不同的值?
- reactjs - 为什么我没有选中 runtim.lastError
- excel - 如何计算有错误的业务单据的 SUM?
- python-3.x - 在 Python Kivy 屏幕管理器中切换到第二个屏幕后,我们如何启动其他操作?
- python - 如何在 mitmproxy 容器中捕获服务器的响应并将其传递到 json 格式的文件中?
- c - 将数组分配给双指针
- python - Python 在特定文件夹上运行 shell 命令
- php - 尝试使用 php 显示数据库中的记录
- python - 具有大对象的 Python 多处理:防止对象的复制/序列化