javascript - 实例化新对象时如何将数据推送到密钥本身?
问题描述
关于实现具有两个选项(DB 搜索和 Web Api 搜索)的符号搜索框。当我在搜索框中输入符号(例如:AAPL - aple stock)时,fetch()
每次都会通过网络发送请求。然后将结果保存在数据库中。每次实例化new Stock()
对象时,我都会将结果推送到对象数据键。因为它不起作用
const stock = new Stock({ //const {Stock} = require('../models/Stock')
symbol: curValue,// req.params.symbol
data: webApiData.map(function (item) {
this.data.push(item)
})
})
作为解决方案,推动不在new Stock({})
webApiData.map(item => {
stock.data.push(item)
})
这是完整的工作代码:
(async function creatStock() {
try {
const webApiData = await fetchWebApi(urlCompact)
const stock = new Stock({ //const {Stock} = require('../models/Stock')
symbol: curValue// req.params.symbol
// data: webApiData.map(function (item) {
// this.data.push(item)
// })
})
webApiData.map(item => {
stock.data.push(item)
})
const query = { symbol: `${curValue}` }
const update = { $addToSet: { data: stock.data } }
const options = { upsert: true, new: true }
const stockResult = await Stock.findOneAndUpdate(query, update, options)
console.log('Saved the symbol web TO db', stockResult.symbol)
return res.send(webApiData)
} catch (ex) {
console.log(`creatStock error: ${ex.errors}`)
}
})()
这是数据库的架构
const ChildSchemaData = new mongoose.Schema({
"_id": false,
date: { type: mongoose.Types.Decimal128 },
open: { type: mongoose.Types.Decimal128 },
high: { type: mongoose.Types.Decimal128 },
low: { type: mongoose.Types.Decimal128 },
close: { type: mongoose.Types.Decimal128 },
volume: { type: mongoose.Types.Decimal128 }
})
const ParentSchemaSymbol = new mongoose.Schema({
"_id": false,
symbol: {
type: String,
trim: true,
minlength: 1,
uppercase: true,
required: 'Please enter a valid symbol, min 1 character'
},
// Array of subdocuments
data: [ChildSchemaData],
slug: String
})
如果我遗漏了什么,请告诉我。
解决方案
推荐阅读
- android - 如何访问辅助后置摄像头?
- javascript - clearTimeout 和 clearInterval 不起作用
- php - 带有消息“未知域 sid”的未捕获异常“Twilio\Exceptions\TwilioException”
- php - 将 Woocommerce 税显示为单独的表格行
- sql - PgSQL 上的值的累积和有界总和
- python - 最常见的重叠范围 - Python3.x
- ansible - 如何提供包含另一个变量的 Ansible 默认值?
- c++-cli - 设置 System::Drawing::Imaging::PropertyItem^ 的值
- android - Android Studio 不显示某些来源
- firebase - 在firebase中,我设置了一个自定义域并且它正在工作。但是当应用程序中的FB或谷歌身份验证时,自定义域不起作用